View
223
Download
0
Category
Preview:
Citation preview
Ž. Mihajlović, ZEMRIS, FER 4.2-1
4.2 SEGMENTIRANJE KRIVULJE– povezivanje segmenata uz očuvanje kontinuiteta na spojevima segmenata C0,
C1, C2 ... http://www.ibiblio.org/e-notes/VRML/Anim/FlyDemo.wrl• http://www.theparticle.com/applets/nyu/BezierApplet/
– korištenje crtaće letvice http://www.ibiblio.org/e-notes/VRML/Anim/Morph.wrl
• letvica se učvrsti i optereti utezima tako da postigne željeni oblik• crtač zatim iscrta krivulju• letvica zauzme položaj (formira krivulju) minimalne potencijalne energije
letvica se savija po zakonu progiba opterećene grede:
mostimoment troti,elastičnosmodulYungovgredu na djeduje kojimoment
funkcijukubnu dati će rješenje
−−−
=⇒=
IEM
dxIE
MydIE
Mdx
yd 222
2
Ž. Mihajlović, ZEMRIS, FER 4.2-2
• http://www.cs.princeton.edu/~min/cs426/classes/bezier.html
• http://www.cs.brown.edu/
• http://i33www.ira.uka.de/applets/mocca/html/noplugin/curves.html
• http://www.ddt.pwp.blueyonder.co.uk/evgeny/Intro/Inter.htm
Ž. Mihajlović, ZEMRIS, FER 4.2-3
4.2.1. B - KRIVULJA B - elastična krivulja ima svojstvo elastične letvice (“spline”)
- kontinuitet je postignut dijeljenjem kontrolnih točaka između više segmenata- prirodni splajn se može prikazati kao težinska suma baznih funkcija
– APROKSIMACIJSKA B-KRIVULJA• k stupanj krivulje (broj kontrolnih točaka ne utječe na stupanj)
• ri kontrolne točke - ukupno ih ima n+1
• Ni,k bazne (težinske) funkcije - polinomi stupnja k
• ui vrijednosti uzlova (engl. knot values)
• UKNOT = {ui} vektor uzlova
( ) ( )uNrup ki
n
ii ,
0∑=
=rr
Ž. Mihajlović, ZEMRIS, FER 4.2-4
Određivanje baznih funkcija
• Ako je nazivnik jednak nuli vrijednost razlomka je nula.
• Uzlovi mogu biti višestruki.
• ui+1 - ui = konst. Krivulja se naziva UNIFORMNA krivulja.
Inače krivulja je NEUNIFORMNA.
( ) <≤
= +
einačuuuza
uN iii
10, 0
1
( ) ( ) ( )uNuuuuuN
uuuuuN ki
iki
kiki
iki
iki 1,1
11
11,, −+
+++
++−
+ −−
+−−
=
Ž. Mihajlović, ZEMRIS, FER 4.2-5
Vektor uzlova • veza između broja točaka stupnja krivulje i vektora uzlova
• n + 1 - broj kontrolnih točaka
• k - stupanj krivulje
• m + 1 - broj vrijednosti u vektoru uzlova
• broj segmenata krivulje
broj segmenata krivulje = n - k + 1= m - 2k
• specijalan slučaj m - 2k - 1 = 0 KRIVULJA BEZIERA
(preko Bernsteinovih polinoma)
( ) ( ) ( )
−−−−=
+−−+444 3444 21444 3444 2143421
1121
2..212..3210..00kkmk
KNOT kmkmkmU
1++= knm
Ž. Mihajlović, ZEMRIS, FER 4.2-6
* PRIMJER
Neperiodička kvadratna B-krivulja određene je sa šest kontrolnih točaka.
Odrediti segmente krivulje.
• k = 2
• n + 1 = 6
• m = n + k +1 = 8
1. Korak:
=
+−−+434214342143421
1
876
12
543
1
210
444321000kkmk
KNOT
uuuuuuuuuU
( ) ( )uNrup ii
i 2,
5
0∑=
=rr
[ ] [ ]
[ ] [ ]
[ ] [ ]
[ ] [ ]40,740,6
4,30,53,20,4
2,10,31,00,2
00,100,0
11
11
11
11
==
==
==
==
NN
NN
NN
NN
u
N
N2, 0 N3, 0 N4, 0 N5, 0
0 431 2
1
Ž. Mihajlović, ZEMRIS, FER 4.2-7
2. Korak:
[ ]
( ) [ ]
[ ]( ) [ ]
( ) [ ] ( ) [ ]
( ) [ ] ( ) [ ]
( ) [ ] ( ) [ ]
( ) [ ]41,6
44,31,5
4,33,21,4
3,22,11,3
2,11,0
0,334
40,2
23
21,2
1,00,223
30,1
12
11,1
00,112
20,0
01
01,0
4
43
42
31
2
1
0
−=
−+−=
−+−=
−+−=
−+=−−
+−−
=
−=−−
+−−
=
=−−
+−−
=
uN
uuN
uuN
uuN
uuNuuuuN
uuuuN
uNuuuuN
uuuuN
NuuuuN
uuuuN
( ) ( ) ( )uNuuuuuN
uuuuuN i
ii
ii
ii
ii 0,1
12
20,
11, +
++
+
+ −−
+−−
=
u
N N2, 1 N3, 1
0 431 2
N1, 1
=
+−−+434214342143421
1
876
12
543
1
210
444321000kkmk
KNOT
uuuuuuuuuU
1N4, 1 N5, 1
Ž. Mihajlović, ZEMRIS, FER 4.2-8
3. Korak:
( ) ( ) ( )uNuuuuuN
uuuuuN i
ii
ii
ii
ii 1,1
13
31,
22, +
++
+
+ −−
+−−
=
( )[ ]
( ) [ ]( )
[ ]
( )[ ]
( )[ ]
( )[ ]
[ ] [ ]
( )[ ]3,2
2
2,1
2
1,0
2
2,2
2,1
2
1,0
2,1
2
1,01,01,2
24
41,1
13
12,1
1,0
21,1
13
31,0
02
02,0
23
2362
2
2234
2
22
221
1
uuuuN
uuu
uuuuuNuuuuN
uuuuN
uNuuuuN
uuuuN
−+
−+−+=
−+−=
−+
−+−=
−−
+−−
=
−=−−
+−−
=
=
+−−+434214342143421
1
876
12
543
1
210
444321000kkmk
KNOT
uuuuuuuuuU
Ž. Mihajlović, ZEMRIS, FER 4.2-9
( )[ ] [ ]
( )[ ]
( )[ ] [ ]
( )[ ]4,3
22,5
4,3
2
3,2
2
2,4
4,3
2
3,2
2
2,1
2
2,3
3
161023
22
24
211102
21
−=
−+−+
−=
−+
++−+
−=
uN
uuuN
uuuuN
u
NN1, 2
N2, 2 N4, 2
N5, 2
0 431 2
N0, 2 N3, 2
Ž. Mihajlović, ZEMRIS, FER 4.2-10
Određivanje segmenata krivulje:
( ) ( )uNrup ii
i 2,
5
0∑=
=rr
( )uNi 2, [0, 1] [1, 2] [2, 3] [3, 4]
0rr
122 +− uu
1rr
uu 223 2 +− 22
21 2 +− uu
2rr
2
2u2332 −+− uu
293
21 2 +− uu
3rr
21
21 2 +−uu
21152 ++− uu 84
21 2 +− uu
4rr
2221 2 +− uu 1610
23 2 −+− uu
5rr
962 +− uu
Ž. Mihajlović, ZEMRIS, FER 4.2-11
Parametar u mijenja se od 0-1, 1-2, 2-3, 3-4
Segment 1: u ∈ [0, 1]
Segment 2: u ∈ [1, 2] Reparametrizacija u=t+1, t ∈ [0, 1]:
( ) [ ]
−
−−
−
=
3
2
12
2
21
232
132211
21
1rrr
uuupr
r
r
r ( ) [ ]
−
−
=
3
2
12
2
021
21
011211
21
1rrr
tttpr
r
r
r
( ) [ ]
−
−
=
2
1
02
1
00102221
231
1rrr
uuupr
r
r
r
Ž. Mihajlović, ZEMRIS, FER 4.2-12
Segment 3: u ∈ [2, 3] Reparametrizacija u=t+2, t ∈ [0, 1]:
Segment 4: u ∈ [3, 4] Reparametrizacija u=t+3, t ∈ [0, 1]:
n-3k+3=2 periodička segmenta segmenti 2 i 3 su isti!
( ) [ ]
−−
−
=
4
3
22
3
224
29
253211
21
1rrr
uuupr
r
r
r
( ) [ ]
−−−
−
=
5
4
32
4
91686104
123
21
1rrr
uuupr
r
r
r ( ) [ ]
−
−
=
5
4
32
4
021
21
011
123
21
1rrr
tttpr
r
r
r
( ) [ ]
−
−
=
4
3
22
3
021
21
011211
21
1rrr
tttpr
r
r
r
Ž. Mihajlović, ZEMRIS, FER 4.2-13
Periodički segment • Unutar neperiodičke B-krivulje stupnja k postoje periodički segmenti:
• kada je zadan veliki broj točaka središnji dio krivulje jednostavnije se može računati uporabom izraza za periodički segment
Npr: periodički segment kubne B-krivulje (k=3):
• broj periodičkih segmenata
1423 −≥−≥ kmilikn
2433 +−+− kmilikn
( ) [ ]
−−
−−
=
+
+
−
2
1
1
23
0141030303631331
611
i
i
i
i
i
rrr
r
ttttpr
r
r
r
r
Ž. Mihajlović, ZEMRIS, FER 4.2-14
Geometrijska svojstva
• Krivulja leži unutar konveksne ljuske kontrolnih točaka.
To je posljedica baricentrične kombinacije težinskih funkcija .
• i - ti segment je u konveksnoj ljusci pripadnih kontrolnih točaka
• k = 1 linearna interpolacija - krivulja je jednaka karakterističnom poligonu
• lokalni nadzor - pomak jedne točke utječe najviše na k+1 segment
• u uzlu krivulja ima neprekinutost Ck-q, q višestrukost uzla
• *** http://www.cs.utah.edu/~dav/curve_ed/
( ) 10
, =∑=
n
iki uN
Ž. Mihajlović, ZEMRIS, FER 4.2-15
• Krivulja prolazi kroz početnu i završnu točku
• Derivacije u početnoj i krajnjoj točki
( ) ( ) nkraj rprp rrrr== 1,0 01
Karakteristični poligon
0rr
1rr
2rr
3rr
4rr
5rr
u0 = u1 = u2 = 0
u3 = 1
u4 = 2u5 = 3
u6 = u7 = u8 = 4
( )up1r
( )up2r
( )up3r ( )up4
r
Konveksna ljuska p3
( ) ( ) ( ) ( )1
1
1
011 1
1,0−−
−
+ −−
=′−=′
km
nnkraj
k urrkp
urrkp
rrr
rrr
Konveksna ljuska
Ž. Mihajlović, ZEMRIS, FER 4.2-16
Oblikovanje krivulje • Višestruke kontrolne točke
• Višestruke vrijednosti uzlova
⇒ smanjenje kontinuiteta - krivulja se približava kontrolnim točkama
• Fantomske točke - dodaju se kolinearno s derivacijama u krajnjim točkama tako da krivulja prolazi tim točkama
• Poznate derivacije *** http://www.people.nnov.ru/fractal/Splines/None.htm
Višestrukost Kontrolne točke Uzla
1 C2 G2 C2 G2
2 C2 G1 C1 G1
3 C2 G0 C0 G0
4 C2 G0 diskontinuitet - odvojene točke
( )101 rrr rrr sa−
Ž. Mihajlović, ZEMRIS, FER 4.2-17
– INTERPOLACIJSKA B-KRIVULJA• k stupanj krivulje
• pi točke kroz koje želimo da krivulja prolazi - ukupno ih ima n +1
• ⇒ potrebno je odrediti točke kontrolnog poligona rj tako da krivulja prolazi točkama pi. Kada odredimo točke rj načinimo aproksimacijsku krivulju određenu točkama rj
rj Broj uvjeta:
Zatvorene periodičke krivulje j = 0 .. n - 1 nOtvorene neperiodičke krivulje j = 0 .. n + k - 1 n + k
Kod zatvorenih periodičkih krivulja krajnje točke se preklope spočetnima.Kod otvorenih periodičkih krivulja poznato je n +1 interpolacijskihtočaka i treba još k -1 dodatnih uvjeta.
Ž. Mihajlović, ZEMRIS, FER 4.2-18
* PRIMJER
Poznato je pet točaka. Odrediti kvadratnu interpolacijsku otvorenu
neperiodičku B-krivulju.
• k = 2
• poznato je 5 točaka kroz koje krivulja treba prolaziti
• treba nam još k-1=1 dodatni uvjet
– neka je dodatni uvjet derivacija u početnoj točki
• kontrolni poligon će imati 6 točaka 5..0=jrjr
1rr
2rr
3rr
4rr
5rr
0rr
Ž. Mihajlović, ZEMRIS, FER 4.2-19
Segment 1: u ∈ [0, 1]
Segment 2: u = 1 ili u reparametriziranom obliku t = 0:
( ) [ ]
( ) [ ] 10
0
3
2
0
1
0
0
2
1
02
1
2200102221
231
0120
00102221
231
10
rrrrr
up
rrrr
uup
rr
r
r
r
r
r
r
r
r
r
+−=
−
−
=′
=
−
−
=
( )22
0 212
rrprr
r+=
Ž. Mihajlović, ZEMRIS, FER 4.2-20
Segment 3:
Segment 4:
Svih 6 uvjeta zapisano matrično:
( )22
0 323
rrprr
r+=
( )
( ) 54
434
122
0
rp
rrprr
rrr
=
+=
( )( )( )( )( )( )
−
=
′
5
4
3
2
1
0
4
4
3
2
1
1
100000
021
21000
0021
2100
00021
210
000022000001
100000
rrrrrr
pppppp
r
r
r
r
r
r
r
r
r
r
r
r
Ž. Mihajlović, ZEMRIS, FER 4.2-21
U dobivenom sustavu potrebno je invertirati matricu (ili riješiti LU
dekompozicijom, Gaussovom eliminacijom) i odrediti točke ri
kontrolnog poligona.
Točke ri određuju kontrolni poligon tako da aproksimacijska krivulja
prolazi zadanim pi točkama.
Daljnje proširenje B-krivulja → NURBS• NeUniformne http://www.people.nnov.ru/fractal/Splines/Basis.htm
• Racionalne
• B-krivulje
Ž. Mihajlović, ZEMRIS, FER 4.2-22
SPLAJN CATMULL-ROMA
Kada želimo da krivulja glatko interpolira niz 3D točaka koje interaktivno zadajemo, možemo koristiti ovu interpolaciju.
- interpolira niz točaka P1 do Pm-1 na osnovi sekvence P0 do Pm.
Vektor tangente u točci Pi paralelan je s dužinom Pi-1 Pi+1.
Nema svojstvo konveksne ljuske.
P0
P1
P2
P3
P4
P5
P6
P7
( ) [ ]
−−−
−−
=−
−
−
i
i
i
i
i
rrrr
ttttpr
r
r
r
r
1
2
3
23
002001011452
1331
211
Ž. Mihajlović, ZEMRIS, FER 4.2-23
4.3. POVRŠINE • promatramo geometrijsko mjesto točaka (trag) koji nastaje ako se
neka krivulja pomiče i istovremeno deformira u prostoru • segment površine čini krpicupovezivanje krpica uz ostvarivanje kontinuiteta duž spojeva
– C0 jednakost točaka krivulja duž spoja– C1 iste parcijalne derivacije (poprečno)– C2 zakrivljenost (poprečno)
POVRŠINA BEZIERA• ako koristimo krivulje Beziera - dobit ćemo krpicu Beziera• GENERATRISA - generira površinu• DIREKTRISA - krivulje koje određuju kako će generatrisa gibati kroz
prostor• http://www.ibiblio.org/e-notes/Splines/Surf.wrl
Ž. Mihajlović, ZEMRIS, FER 4.2-24
• površina je funkcija dva parametra u, v
• generatrise• direktrise
u
v00rr 01rr
02rr03rr
10rr
11rr
12rr 13rr
20rr30rr
21rr
31rr
22rr
32rr33rr
23rr
Ž. Mihajlović, ZEMRIS, FER 4.2-25
• prva i zadnja direktrisa zovu se glavne direktrise jer kontrolne točke generatrise leže na njima
• putanje vrhova kontrolnih poligona generatrise određuju direktrise⇒ direktrise ne leže na površini (osim glavnih direktirisa)
• stupanj krivulja određuje krpicu npr. bikvadratne, bikubične
*** http://www.cs.technion.ac.il/~cs234325/Homepage/Applets/applets/bezpatch/GermanApplet.html
( ) [ ]( )( )( )( )
=
τ
τ
τ
τ
vDvDvDvD
Muuuvup
3
2
1
0
23 1,r
Ž. Mihajlović, ZEMRIS, FER 4.2-26
• pojedine direktrise
• krpica površine
( ) [ ] ( ) [ ]
=
=
13
12
11
10
231
03
02
01
00
230 11
rrrr
MvvvvD
rrrr
MvvvvD
( ) [ ] ( ) [ ]
=
=
33
32
31
30
233
23
22
21
20
232 11
rrrr
MvvvvD
rrrr
MvvvvD
( ) [ ]
=
1
1,2
3
33323130
23222120
13121110
02020100
23
vvv
M
rrrrrrrrrrrrrrrr
Muuuvup τr
Recommended