Geometrické modelování Zbyněk Šír Matematický ústav UK Matematicko-fyzikální fakulta Hermitovská interpolace 15. listopadu 2017 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 1 / 23
Hermiteovská interpolace Jedna z možných základních konstrukčních úloh je sestrojit křivku, která inerpoluje hraniční data c(0), c (0),{c (0)} c(1), c (1),{c (1)} Dostatečná ke konverzi obecně zadaných křivek. 2 1 0 0.5 1 1.5 2 2.5 3 1 2 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 2 / 23
Hermiteovská interpolace Jedna z možných základních konstrukčních úloh je sestrojit křivku, která inerpoluje hraniční data c(0), c (0),{c (0)} c(1), c (1),{c (1)} Dostatečná ke konverzi obecně zadaných křivek. 2 1 0 0.5 1 1.5 2 2.5 3 1 2 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 2 / 23
Hermiteovská interpolace Jedna z možných základních konstrukčních úloh je sestrojit křivku, která inerpoluje hraniční data c(0), c (0),{c (0)} c(1), c (1),{c (1)} Dostatečná ke konverzi obecně zadaných křivek. 2 1 0 0.5 1 1.5 2 2.5 3 1 2 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 2 / 23
Hermiteovská interpolace Jedna z možných základních konstrukčních úloh je sestrojit křivku, která inerpoluje hraniční data c(0), c (0),{c (0)} c(1), c (1),{c (1)} Dostatečná ke konverzi obecně zadaných křivek. 2 1 0 0.5 1 1.5 2 2.5 3 1 2 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 2 / 23
Hermiteovská interpolace Jedna z možných základních konstrukčních úloh je sestrojit křivku, která inerpoluje hraniční data c(0), c (0),{c (0)} c(1), c (1),{c (1)} Dostatečná ke konverzi obecně zadaných křivek. 2 1 0 0.5 1 1.5 2 2.5 3 1 2 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 2 / 23
Biarcs P 0 P 1 U 1 U 0 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 3 / 23
Biarcs P 0 P 1 U 1 U 0 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 3 / 23
Biarcs P 0 P 1 U 1 U 0 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 3 / 23
Biarcs P 0 P 1 U 1 U 0 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 3 / 23
Biarcs P 0 P 1 U 1 U 0 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 3 / 23
Biarcs P 0 P 1 U 1 U 0 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 3 / 23
Výběr vhodného biarcu Equal chords Parallel tangent New method Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 4 / 23
Výběr vhodného biarcu Equal chords Parallel tangent New method Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 5 / 23
Výběr vhodného biarcu Equal chords Parallel tangent New method Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 6 / 23
Asymptotické zlepšování chyby Error Ratio Error Ratio 1 4.97 2 2.23 2.233 256 3.32 10 5 5.552 4 3.98 10 1 5.594 512 4.32 10 6 7.699 8 1.89 10 1 2.110 1024 5.45 10 7 7.928 16 4.02 10 2 4.697 2048 6.82 10 8 7.988 32 5.93 10 3 6.780 4096 8.57 10 9 7.956 64 1.03 10 3 5.767 8192 1.07 10 9 7.979 128 1.85 10 4 5.568 16384 1.34 10 10 8.009 Aproximační stupeň 3 nemůže být vylepšen. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 7 / 23
Polynomiální rovinné křivky Rovinná polynomiální křivka je zobrazení z omezeného intervalu c : I R 2 tvaru c(t) = [p x (t), p y (t)], kde p x, p y jsou polynomy v t. Stupeň c(t) definujeme jako maximum stupňů p x, p y. Křivky stupně 0 jsou body, stupně 1 úsečky a stupně 2 části parabol. Křivky stupně 3 jsou pro aplikace nejdůležitější: Mohou mít inflexe. Mohou to být pravé 3d křivky s nenulovou torzí(při zobrazení do R 3 ). Mohou řešit tzv. Hermitovskou C 1 interpolaci. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 8 / 23
Reparametrizace polynomálních křivek. Uvažujme křivku [1+3s 3s 2 + 3s 3, 1 6s 2 + 6s 3 ] na intervalu s [ 1, 2] a reparametrizujme jí na standartní interval J = [0, 1]. Co zůstane stejné, co se změní? Dostáváme pro t [0, 1]. [ 8+54t 108t 2 + 81t 3, 11+90t 216t 2 + 162t 3 ] Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 9 / 23
Báze kubických polynomů Monomiální báze M = (1, t, t 2, t 3 ), v té je vlastně křivka [ 8+54t 108t 2 + 81t 3, 11+90t 216t 2 + 162t 3 ] vyjádřena. Můžeme ovšem upravit jako [ 8, 11]+[54, 90]t +[108, 216]t 2 +[81, 162]t 3. Jakou jinou bázi můžeme zvolit, aby se něco zjednodušilo nebo zlepšilo? Bernsteinova kubická báze B = (B0 3(t), B3 1 (t), B3 2 (t), B3 3 (t)), kde Bi n (t) = ( n i) t i (1 t) n i. Fergusonova interepolační báze (definována později). Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 10 / 23
Fergusonova kubika Řešíme Hermitovskou interpolaci, máme předepsáno. c(0) = P 0, c(1) = P 1, c (0) = V 0, c (1) = V 1 Pozor na reparametrizaci, vhodné upravit délku vektorů V 0 a V 1 tak, aby byla přibližně rovna P 1 P 0. Jak vypadá hledání kubické c(t) v bazích M a B? Jaká soustava rovnic se zde musí vyřešit? Existuje taková baze F = (f 0 (t), f 1 (t), f 2 (t), f 3 (t)), ve které bude mít problém jako řešení c(t) = P 0 f 0 (t)+p 1 f 1 (t)+v 1 f 2 (t)+v 2 f 3 (t)? Jinými slovy, odpovídající soustava lineárních rovnic má jednotkovou matici? Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 11 / 23
Několik odpovědí V monomiální bázi M napíšeme křivku jako c(t) = A 0 + A 1 t + A 2 t 2 + A 3 t 3 a koeficienty (A 0, A 1, A 2, A 3 ) pak dostaneme jako řešení soustavy 1 0 0 0 A 0 P 0 1 1 1 1 A 1 0 1 0 0 A 2 = P 1 V 0. 0 1 2 3 A 3 V 1 Tato matice je ve zároveň maticí přechodu [id] M F, protože analogická úloha v bázi F má mít z definice jednotkovou matici. Z toho důvodu máme 1 1 0 0 0 1 0 0 0 [id] F M = 1 1 1 1 0 1 0 0 = 0 0 1 0 3 3 2 1. 0 1 2 3 2 2 1 1 Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 12 / 23
Několik odpovědí A tedy Fergusonova báze F má tvar f 0 (t) = 1 3t 2 + 2t 3 f 1 (t) = 3t 2 2t 3 f 2 (t) = t 2t 2 + t 3 f 3 (t) = t 2 + t 3. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 13 / 23
Nový DU Danou prostorovou parametrickou křivku aproximujte pomocí několika kubik. Postupujte tak, že z křivky odečtete v (n+1) bodech Hermitovská data (polohu bodu a vektor první derivace) a sousední data vždy interpolujte kubikou. Použijte k tomu Bernsteinovu bázi. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 14 / 23
Bézierova křivka - ideál geometrického modelování Vše je založeno na Bernsteinově bázi polynomů stupně nejvýše n B n = (B n 0 (t), Bn 1 (t),, Bn n (t)), kde B n i (t) = ( n i) t i (1 t) (n i). Křivku potom parametrizujeme jako kde P i R N jsou kontrolní body. i=0 c(t) = P i Bi n (t), n http://cagd-applets.webarchiv.kit.edu/mocca/html/noplugin/inhalt.html Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 15 / 23
Výhody Bernsteinovy báze Vznikla jako pravděpodobnostní funkce při konstrukčním důkazu Weierstrassovy věty. Nezápornost, symetrie a rozložní extrémů poskytují ideální modelářský základ. Rozklad jednotky poskytuje convex hall a variation diminishing vlastnosti. Algebraické vlastnosti Baze poskytují jednoduché algoritmy De Casteljau, degree elevation a pro derivování. Nejstabilnější báze na intervalu [0, 1]. Téma je standardní - viz doplňkové materiály na webu. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 16 / 23
Bernsteinovy polynomy Definuji i-tý Bernsteinův polynom stupně n jako ( ) n Bi n (t) = t i (1 t) (n i). i Tento výraz udává pravděpodobnost, že při n opakování náhododného jevu, který má pravděpodobnost t, tento jev nastane právě i-krát. B n = ( B n 0 (t), Bn 1 (t),, Bn n(t) ) je báze polynomů stupně nejvýše n. B n je rozklad jednotky, B n i (t) je nazáporný na [0, 1] a má jediné maximum v bodě t = i/n. Pro každou funkci f(t) spojitou na intervalu [0, 1] definuji i=0 f n (t) = f( i n )Bn i (t). Pak platí f n f (Bernstein 1912). Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 17 / 23 n
Bernsteinovy polynomy Platí Symetrie B n i (t) = B n n i (1 t) Rekurence Derivace Bi n (t) = (1 t)bi n 1 (t)+tb n 1 i 1 (t) ( ) Bi n (t) = n B n 1 i 1 (t) Bn 1 i (t) Vnoření prostorů P n 1 (t) < P n (t) Bi n 1 (t) = n i n Bn i (t)+ i + 1 n Bn i+1 (t) Jaká je matice přechodu mezi monomiální bazí M n a B n? Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 18 / 23
Bézierovy křivky Definice: Mějme posloupnost n+1 bodů P i R N, kde i = 0,...,n. Tyto body nazýváme řídící body a lomenou čáru, která je postupně spojuje nazýváme řídící polygon. Pak definujeme Bézierovu křivku i=0 c(t) = P i Bi n (t). Jak pro danou polynomiální křivku nalezneme řídící body? n Jak to je z pohledu afinní geometrie (konvexní kombinace bodů, afinní zobrazení)? Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 19 / 23
Hodograph (tečný vektor) Pro derivaci (hodograph) křivky c(t) s řídícími body P i R N, kde i = 0,...,n platí n 1 c (t) = Q i Bi n 1 (t), kde Q i = n(p i+1 P i ). i=0 Jak vypadá Hermitovská interpolace pomocí Bézierových kubik? Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 20 / 23
DeCasteljau algoritmus Mějme řídící body P i R N, kde i = 0,...,n a odpovídající Bézierovu křivku c(t). Zafixujme pevné u [0, 1] a definujeme systém bodů P i,j indexovaný dvěma indexy i = 0,...,n a j = 0,...,(n i) takto: P 0,j := P j P i,j := (1 u)p i 1,j + up i 1,j+1 pro i > 0 Potom bod P n,0 = c(u) a úsečka P n 1,0 P n 1,1 je tečnou v tomto bodě. Přímým důsledkem je, že křivka leží v konvexním obalu řídícího polygonu. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 21 / 23
Subdivision Body P i,0, i = 0,...,n jsou řídícími body části křivky na intervalu [0, u]. Body P i,n i, i = 0,..., n jsou řídícími body části křivky na intervalu [u, 1]. Obě části jsou napojeny se spojitosí G 1 a při reparametrizaci na správné intevaly [0, u] a [u, 1] se spojitostí C 1. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 22 / 23
Degree elevation Křivky c(t) s řídícími body P i R N, kde i = 0,...,n lze také vyjádřit jako křivku s řídícími body Q i R N, kde i = 0,...,n+1 a Q i = i n+1 P i 1 +(1 i n+1 )P i DU naimplementujte DeCasteljau algoritmus. Zbyněk Šír (MÚ UK) - Geometrické modelování 15. listopadu 2017 23 / 23