3d-s számítógépes geometriacg.iit.bme.hu/portal/sites/default/files/oktatott...3d-s...
TRANSCRIPT
3D-s számítógépes geometria 1
3D-s számítógépes geometria
Dr. Várady
TamásBME, Villamosmérnöki és Informatikai KarIrányítástechnika és Informatika Tanszék
http://cg.iit.bme.hu/portal/node/312https://www.vik.bme.hu/kepzes/targyak/VIIIAV01
7b. A Bézier
és B-spline
reprezentáció
kiterjesztése
3D-s számítógépes geometria 2
Tartalom
Racionális polinomokmotivációprojektív transzformációkúpszeletekracionális görbék és felületekforgásfelületek
Hiányos csomóvektorokmotivációlokális kontrollpont alapú spline felületekT-spline konstrukció
],/*/*[ :D2]1,//[],[:3Dzyz,yxxzz,yxzx,y
=→→
3Projektív leképzés
Projektív leképzés1
Affin leképzésegyenes → egyenesszakaszok aránya őrződik:
Projektív leképzésegyenes → egyenesnégy pont egy egyenesen; kettősviszony (cross
ratio) definició:
o vetítési középpontΩ vetítési sík (kép sík)a kettősviszony őrződik
a
bc
cb
a|ˆˆ|/|ˆˆ||/|| cbbabcab =
||/||||/||][
cdacbdababcd =
ab
c
d
Ω
a b c d
]ˆˆˆˆ[][ dcbaabcd =
4Projektív leképzés
Projektív leképzés2
∆ területek aránya alapján:
⇒ a kettősviszony csak az o-beli szögektől függ
legyen
a két egyenes közötti parametrizációracionális, felírható az alábbi alakban:
γβαγβα
sin/)(sin)(/)(||/||)(sin/sin)(/)(||/||
4331
4221
llllllll
+=ΔΔ=+=ΔΔ=
cdoacocdacbdoabobdab
]1ˆˆ0[]ˆˆˆˆ[];10[][ tbbt →→ dcbaabcd
),,(||/||||/||][ γβαf==
cdacbdababcd
tctctct
12
1
)1(ˆ
+−=
o
5Kúpszeletek
Kúpszeletek1kúpszelet létrehozása projekcióvaltérbeli parabola síkba vetítése
a projekció középpontja az origóa projekció síkja a z=1 sík
vetítés:
tetszőleges w-re (projektív egyenes)
parabola:
kúpszelet:
]1,[:3D],[ :D2 x,yx,y
][],[],,[],[ xx →→ wwyxwwx,wy
)()()()( 222
211
200 tBtBtBt pppp ++=
2,1,0],,[
,)()()(
)()()()( 222
211
200
2222
2111
2000
==++++
=
iwwtBwtBwtBwtBwtBwtBwt
iiii bp
bbbc
]1,//[],[ zz,yxzx,y →
6Kúpszeletek
Kúpszeletek2racionális törtfüggvények:
mindig átparaméterezhető:
kúpszeletek osztályozása:parabola
hiperbola
ellipszis
kör:
]1,,1[],,[,,**)1(
**, *1210
0
2 wwwwww
tttttt →=
+−=→ ρρ
5.0,1*1 == sw
)()(cos)()()(cos)()( 2
221
20
222
211
200
tBtBtBtBtBtBt
++++
=αα bbbc
)()()()(
,)()()(
)()(
222
211
200
222
211
200
22
tBtBtBttBwtBwtBw
tBwtB iii
bbbc ++=
++=
5.0,1*1 >> sw
5.0,1*1 << sw
αcos*1 =w
0b
1b
2bα
*1
*1
1 wws+
=
7Kúpszeletek
Köregyenlet (kitérő)egyenlet:
felezőpont (behelyettesítés -egyenlet teljesül):
félkörív:
22
22
)1(2cos)1(01
)1(2tg0
cos)1(01
)(tttt
ttttt
+−+−
⎥⎦
⎤⎢⎣
⎡+−⎥
⎦
⎤⎢⎣
⎡+−⎥
⎦
⎤⎢⎣
⎡−
=α
αα
c
o90→α
)0,1(0 −=b
)tg,0(1 α=b
)0,1(2 =b
α
ααsin
1=Rα
αααα
αcos1
sintg1
sin1,
cos1sin)5.0(
++=
+=yc
⎟⎠
⎞⎜⎝
⎛++
−=⇒
−=
⎟⎠
⎞⎜⎝
⎛+−−
+−+−−
=
12,
11)(;1
,)1(
)1(2,)1()1()(
22
2
2222
22
uu
uuu
ttu
tttt
ttttt
c
c
αtg1
8Kúpszeletek
Racionális Bézier
görbékracionális Bézier görbe:
súlyok görbe módosításújraparametrizálás
∑
∑
=
== n
j
njj
ni
n
iii
tBw
tBwt
0
0
)(
)()(
cr
ii
i wcw =*
2=c
1=c
5.0=c
9Kúpszeletek
Racionális egyenletekracionális Bézier görbe:
racionális B-spline görbe:
racionális Bézier (B-spline) felület:
elsődleges alkalmazás - forgásfelületek
∑
∑
=
== n
j
njj
ni
n
iii
tBw
tBwt
0
0
)(
)()(
cr
∑
∑
=
== L
j
njj
ni
L
iii
tNw
tNwt
0
0
)(
)()(
dr
)()(
)()(),(
0 0
0 0
uBuBw
uBuBwvu
mj
ni
n
iij
m
j
mj
ni
n
iijij
m
j
∑∑
∑∑
= =
= ==c
s
10T-spline-ok
T-spline1
u
v
NURBS –
4712, T-spline
–
1109 kontrollpont
•
B-spline
felületek két csomóvektor: ui, vjkontrollpontok rács topológiába rendezve
•
Problémák komplex esetekben redundáns struktúraszámítási hatékonyságsimaság
•
Példa: 2x2 csomó
beszúrása8 helyett 2nm új kontrollpont keletkezik
•
Cél: a csomó struktúra általánosításaa kontrollpontok számának optimalizálása
11T-spline-ok
T-Spline2Módosított definíció:
Csomóértékek → CsomóintervallumokKontrollpoligon élein címkék: di
= ui+1
– ui [(0),1,2,3,4,6,9,10,11,(12)]
Kontrollpontok - a csomórács pontjaihoz rendeljükPoláris koordináták a szomszédos csomók alapján
P0
=P012
P1
=P123 P2
=P235
P3
=P356
0 1 2 3 5 6
12T-spline-ok
T-Spline3Pontok alapján definiált általános spline felület:
kontrollpontok - csak néhány metszéspontbanbázisfüggvények – a szomszédos csomóintervallumok Ui ,Vi alapján a pontok teljesen függetlenek
Példa:n=m=3, a középső ponthoz tartozócsomóvektorokUi = [si0, si1, si2, si3, si4]Vi = [ti0, ti1, ti2, ti3, ti4]
Cél: a csomóvektorok automatikus meghatározása
,)()()()(
),( ,0
,0
,0
,0
∑∑=
iVimUin
iVimUin
i
tNsNtNsN
tsP
S
P1
P2
P4
P3
13T-spline-ok
T-Spline4
T-spline : hiányos rács struktúra T-elágazásokkal
Szabályok:egy lap szemben levő éleinek hossza azonos;pl. F: e6
+ e7
= e8
+ e9
ha két szemben lévő T-elágazáscsomóértéke megegyezik, ezeketössze kell kötni egy belső
éllel;pl. ha e7
= e9,
Csomók meghatározása, harmad-fokú példák
a széleken a kimaradó csomónem számít (azonosnak vehetjük)
P1
: [s1
, s2
, s3
, s4
, s5
-d8
] [t1
-e0
, t1
, t2
, t3
, t4
+e9
]
P2
: [s3
, s3
+d6
, s5
-d8
, s5
, s5
+d5
] [t1
, t2
, t3
, t4
, t5
]
P3
: [s1
-d0
, s1
-d0
, s1
, s2
, s2
+d7
]
[t1
, t5
-e4
+e9
-e7
, t5
, t5
+e5
, t5
+e5
]
14Következő előadás
A következő
előadás tartalma
Görbe
interpoláció
-
szakaszonkéntparametrikus és geometriai folytonosságBézier szegmensek illesztése
B-spline görbe
interpolációvégponti kényszerek, egyenletrendszercsomóvektor - különböző parametrizációk
B-spline görbe
approximációlegkisebb négyzetes minimalizálásismeretlen felület, ismeretlen parametrizációiteratív eljárás, paraméter korrekció
B-spline felület approximációáltalánosításparaméter korrekció