Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Geometricke modelovanı
Zbynek Sır
Matematicky ustav UKMatematicko-fyzikalnı fakulta
Hermitovska interpolace
15. listopadu 2017
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 1 / 23
Hermiteovska interpolace
Jedna z moznych zakladnıch konstrukcnıch uloh je sestrojit krivku,ktera inerpoluje hranicnı data
c(0),c′(0), {c′′(0)} c(1),c′(1), {c′′(1)}
Dostatecna ke konverzi obecne zadanych krivek.
–2
–1
0
1
2
0.5 1 1.5 2 2.5 3
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 2 / 23
Hermiteovska interpolace
Jedna z moznych zakladnıch konstrukcnıch uloh je sestrojit krivku,ktera inerpoluje hranicnı data
c(0),c′(0), {c′′(0)} c(1),c′(1), {c′′(1)}
Dostatecna ke konverzi obecne zadanych krivek.
–2
–1
0
1
2
0.5 1 1.5 2 2.5 3
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 2 / 23
Hermiteovska interpolace
Jedna z moznych zakladnıch konstrukcnıch uloh je sestrojit krivku,ktera inerpoluje hranicnı data
c(0),c′(0), {c′′(0)} c(1),c′(1), {c′′(1)}
Dostatecna ke konverzi obecne zadanych krivek.
–2
–1
0
1
2
0.5 1 1.5 2 2.5 3
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 2 / 23
Hermiteovska interpolace
Jedna z moznych zakladnıch konstrukcnıch uloh je sestrojit krivku,ktera inerpoluje hranicnı data
c(0),c′(0), {c′′(0)} c(1),c′(1), {c′′(1)}
Dostatecna ke konverzi obecne zadanych krivek.
–2
–1
0
1
2
0.5 1 1.5 2 2.5 3
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 2 / 23
Hermiteovska interpolace
Jedna z moznych zakladnıch konstrukcnıch uloh je sestrojit krivku,ktera inerpoluje hranicnı data
c(0),c′(0), {c′′(0)} c(1),c′(1), {c′′(1)}
Dostatecna ke konverzi obecne zadanych krivek.
–2
–1
0
1
2
0.5 1 1.5 2 2.5 3
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 2 / 23
Biarcs
U0
U1
P0
P1
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 3 / 23
Biarcs
U0
U1
P0
P1
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 3 / 23
Biarcs
U0
U1
P0
P1
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 3 / 23
Biarcs
U0
U1
P0
P1
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 3 / 23
Biarcs
U0
U1
P0
P1
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 3 / 23
Biarcs
U0
U1
P0
P1
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 3 / 23
Vyber vhodneho biarcu
Equal chords Parallel tangent New method
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 4 / 23
Vyber vhodneho biarcu
Equal chords Parallel tangent New method
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 5 / 23
Vyber vhodneho biarcu
Equal chords Parallel tangent New method
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 6 / 23
Asymptoticke zlepsovanı chyby
Error Ratio Error Ratio
1 4.972 2.23 2.233 256 3.32 10−5 5.5524 3.98 10−1 5.594 512 4.32 10−6 7.6998 1.89 10−1 2.110 1024 5.45 10−7 7.92816 4.02 10−2 4.697 2048 6.82 10−8 7.98832 5.93 10−3 6.780 4096 8.57 10−9 7.95664 1.03 10−3 5.767 8192 1.07 10−9 7.979128 1.85 10−4 5.568 16384 1.34 10−10 8.009
Aproximacnı stupen 3 nemuze byt vylepsen.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 7 / 23
Polynomialnı rovinne krivky
Rovinna polynomialnı krivka je zobrazenı z omezeneho intervaluc : I → R
2 tvaru c(t) = [px(t),py (t)], kde px , py jsou polynomy v t .
Stupen c(t) definujeme jako maximum stupnu px , py .
Krivky stupne 0 jsou body, stupne 1 usecky a stupne 2 castiparabol.Krivky stupne 3 jsou pro aplikace nejdulezitejsı:
Mohou mıt inflexe.Mohou to byt prave 3d krivky s nenulovou torzı(pri zobrazenı do R
3).Mohou resit tzv. Hermitovskou C1 interpolaci.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 8 / 23
Reparametrizace polynomalnıch krivek.
Uvazujme krivku
[1 + 3s − 3s2 + 3s3,1 − 6s2 + 6s3]
na intervalu s ∈ [−1,2] a reparametrizujme jı na standartnı intervalJ = [0,1]. Co zustane stejne, co se zmenı?
Dostavame
[−8 + 54t − 108t2 + 81t3,−11 + 90t − 216t2 + 162t3]
pro t ∈ [0,1].
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 9 / 23
Baze kubickych polynomu
Monomialnı baze M = (1, t , t2, t3), v te je vlastne krivka[−8 + 54t − 108t2 + 81t3,−11 + 90t − 216t2 + 162t3] vyjadrena.
Muzeme ovsem upravit jako[−8,−11] + [54,90]t + [108,−216]t2 + [81,162]t3.
Jakou jinou bazi muzeme zvolit, aby se neco zjednodusilo nebozlepsilo?
Bernsteinova kubicka baze B = (B30(t),B
31(t),B
32(t),B
33(t)), kde
Bni (t) =
(ni
)
t i(1 − t)n−i .
Fergusonova interepolacnı baze (definovana pozdeji).
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 10 / 23
Fergusonova kubika
Resıme Hermitovskou interpolaci, mame predepsano
c(0) = P0, c(1) = P1, c′(0) = V0, c′(1) = V1
.
Pozor na reparametrizaci, vhodne upravit delku vektoru V0 a V1
tak, aby byla priblizne rovna ||P1 − P0||.
Jak vypada hledanı kubicke c(t) v bazıch M a B? Jaka soustavarovnic se zde musı vyresit?
Existuje takova baze F = (f0(t), f1(t), f2(t), f3(t)), ve ktere budemıt problem jako resenı
c(t) = P0f0(t) + P1f1(t) + V1f2(t) + V2f3(t)?
Jinymi slovy, odpovıdajıcı soustava linearnıch rovnic majednotkovou matici?
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 11 / 23
Nekolik odpovedı
V monomialnı bazi M napıseme krivku jako
c(t) = A0 + A1t + A2t2 + A3t3
a koeficienty (A0,A1,A2,A3) pak dostaneme jako resenı soustavy
1 0 0 01 1 1 10 1 0 00 1 2 3
A0
A1
A2
A3
=
P0
P1
V0
V1
.
Tato matice je ve zaroven maticı prechodu [id ]MF
, protoze analogickauloha v bazi F ma mıt z definice jednotkovou matici. Z toho duvodumame
[id ]FM =
1 0 0 01 1 1 10 1 0 00 1 2 3
−1
=
1 0 0 00 0 1 0−3 3 −2 −12 −2 1 1
.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 12 / 23
Nekolik odpovedı
A tedy Fergusonova baze F ma tvar
f0(t) = 1 − 3t2 + 2t3
f1(t) = 3t2 − 2t3
f2(t) = t − 2t2 + t3
f3(t) = −t2 + t3.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 13 / 23
Novy DU
Danou prostorovou parametrickou krivku aproximujte pomocı nekolikakubik. Postupujte tak, ze z krivky odectete v (n + 1) bodechHermitovska data (polohu bodu a vektor prvnı derivace) a sousednıdata vzdy interpolujte kubikou. Pouzijte k tomu Bernsteinovu bazi.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 14 / 23
Bezierova krivka - ideal geometrickeho modelovanı
Vse je zalozeno na Bernsteinove bazi polynomu stupne nejvyse n
Bn = (Bn0(t),B
n1(t), · · · ,B
nn(t)) ,
kde Bni (t) =
(ni
)
t i(1 − t)(n−i). Krivku potom parametrizujeme jako
c(t) =i=0∑
n
PiBni (t),
kde Pi ∈ RN jsou kontrolnı body.
http://cagd-applets.webarchiv.kit.edu/mocca/html/noplugin/inhalt.html
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 15 / 23
Vyhody Bernsteinovy baze
Vznikla jako pravdepodobnostnı funkce pri konstrukcnım dukazuWeierstrassovy vety.
Nezapornost, symetrie a rozloznı extremu poskytujı idealnımodelarsky zaklad.
Rozklad jednotky poskytuje convex hall a variation diminishingvlastnosti.
Algebraicke vlastnosti Baze poskytujı jednoduche algoritmy DeCasteljau, degree elevation a pro derivovanı.
Nejstabilnejsı baze na intervalu [0,1].
Tema je standardnı - viz doplnkove materialy na webu.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 16 / 23
Bernsteinovy polynomy
Definuji i-ty Bernsteinuv polynom stupne n jako
Bni (t) =
(
ni
)
t i(1 − t)(n−i).
Tento vyraz udava pravdepodobnost, ze pri n opakovanınahododneho jevu, ktery ma pravdepodobnost t , tento jevnastane prave i-krat.Bn =
(
Bn0(t),B
n1(t), · · · ,B
nn(t)
)
je baze polynomu stupne nejvyse n.Bn je rozklad jednotky, Bn
i (t) je nazaporny na [0,1] a ma jedinemaximum v bode t = i/n.Pro kazdou funkci f (t) spojitou na intervalu [0,1] definuji
fn(t) =i=0∑
n
f (in)Bn
i (t).
Pak platı fn ⇒ f (Bernstein 1912).
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 17 / 23
Bernsteinovy polynomy
Platı
Symetrie Bni (t) = Bn
n−i(1 − t)
RekurenceBn
i (t) = (1 − t)Bn−1i (t) + tBn−1
i−1 (t)
DerivaceBn
i (t)′ = n
(
Bn−1i−1 (t)− Bn−1
i (t))
Vnorenı prostoru Pn−1(t) < Pn(t)
Bn−1i (t) =
n − in
Bni (t) +
i + 1n
Bni+1(t)
Jaka je matice prechodu mezi monomialnı bazı Mn a Bn?
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 18 / 23
Bezierovy krivky
Definice: Mejme posloupnost n + 1 bodu Pi ∈ RN , kde
i = 0, . . . ,n. Tyto body nazyvame rıdıcı body a lomenou caru,ktera je postupne spojuje nazyvame rıdıcı polygon. Pakdefinujeme Bezierovu krivku
c(t) =i=0∑
n
PiBni (t).
Jak pro danou polynomialnı krivku nalezneme rıdıcı body?
Jak to je z pohledu afinnı geometrie (konvexnı kombinace bodu,afinnı zobrazenı)?
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 19 / 23
Hodograph (tecny vektor)
Pro derivaci (hodograph) krivky c(t) s rıdıcımi body Pi ∈ RN , kde
i = 0, . . . ,n platı
c′(t) =n−1∑
i=0
QiBn−1i (t),
kde Qi = n(Pi+1 − Pi).
Jak vypada Hermitovska interpolace pomocı Bezierovych kubik?
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 20 / 23
DeCasteljau algoritmus
Mejme rıdıcı body Pi ∈ RN , kde i = 0, . . . ,n a odpovıdajıcı
Bezierovu krivku c(t). Zafixujme pevne u ∈ [0,1] a definujemesystem bodu Pi,j indexovany dvema indexy i = 0, . . . ,n aj = 0, . . . , (n − i) takto:
P0,j := Pj
Pi,j := (1 − u)Pi−1,j + uPi−1,j+1 pro i > 0
Potom bod Pn,0 = c(u) a usecka Pn−1,0Pn−1,1 je tecnou v tomtobode.
Prımym dusledkem je, ze krivka lezı v konvexnım obalu rıdıcıhopolygonu.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 21 / 23
Subdivision
Body Pi,0, i = 0, . . . ,n jsou rıdıcımi body casti krivky na intervalu[0,u].
Body Pi,n−i , i = 0, . . . ,n jsou rıdıcımi body casti krivky na intervalu[u,1].
Obe casti jsou napojeny se spojitosı G1 a pri reparametrizaci naspravne intevaly [0,u] a [u,1] se spojitostı C1.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 22 / 23
Degree elevation
Krivky c(t) s rıdıcımi body Pi ∈ RN , kde i = 0, . . . ,n lze take
vyjadrit jako krivku s rıdıcımi body Qi ∈ RN , kde i = 0, . . . ,n + 1 a
Qi =i
n + 1Pi−1 + (1 −
in + 1
)Pi
DU naimplementujte DeCasteljau algoritmus.
Zbynek Sır (MU UK) - Geometricke modelovanı 15. listopadu 2017 23 / 23