Bézierovy křivky Bohumír Bastl (bastl@kma.zcu.cz) KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26
Opakování Spline křivky opakování Bézierovy křivky GPM 2 / 26
Opakování Interpolace vs. aproximace křivky mohou být určeny pomocí tzv. řídících nebo opěrných bodů, obvykle je nutné doplnit ještě další informace (okrajové podmínky apod.) existují dva různé přístupy k vytváření takových křivek: interpolace zadáváme opěrné body + obvykle okrajové podmínky, výsledná hladká křivka prochází všemi zadanými body aproximace zadáváme řídící body, výsledkem je typicky hladká křivka, která ale prochází pouze některými, příp. žádnými řídícími body typickými příklady je Lagrangeova interpolace, Hermitova interpolace, aproximace metodou nejmenších čtverců Bézierovy křivky GPM 3 / 26
Spline křivky Opakování... jsou většinou intuitivně chápány jako "po částech polynomické funkce se spojitou derivací co do nejvyššího řádu"... jsou matematickým modelem chování pružného lat kového křivítka, které v minulosti používali konstruktéři trupů lodí... jsou interpolačními křivkami daného stupně, které interpolují zadané opěrné body pro dané opěrné body P 0,..., P n a jim přiřazené číselné hodnoty (parametry) t 0,..., t n, má spline parametrické vyjádření pro které platí P i = P(t i), i = 0,..., n volba parametrů: P = P(t), t t 0, t n, uniformní parametrizace, kde t i+1 t i = konst. neuniformní, např. chordálová parametrizace, kde t i+1 = t i + k P i+1 P i nejčastěji se používají kubické spline křivky, kde základem pro výpočet jednotlivých oblouků je tzv. Fergusonova kubika Bézierovy křivky GPM 4 / 26
Fergusonova kubika Opakování vstupní data: body P i, P i+1, parametry t i, t i+1 a tečné vektory P i, P i+1 potom Fergusonova kubika je dána vztahem P(t) = H 0(t t i)p i + H 1(t t i)p i+1 + H 2(t t i)p i + H 3(t t i)p i+1, kde H i(s) jsou polynomy třetího stupně, které je možné najít z nutnosti splnění okrajových podmínek P(t i) = P i, P(t i+1) = P i+1, P (t i) = P i, P (t i+1) = P i+1 Bézierovy křivky GPM 5 / 26
Kubické spline křivky Opakování dáno: opěrné body P 0,..., P n, parametry t 0 < t 1 < < t n zadáním opěrných bodů P 0,..., P n a odpovídajících hodnot parametrů t 0,..., t n není kubická spline křivka určena jednoznačně, je nutné doplnit 2 okrajové podmínky dodatečné okrajové podmínky jsou zpravidla trojího typu: tečné vektory v počátečním a koncovém bodě vektory druhých derivací v počátečním a koncovém bodě, speciálním případem je podmínka "volného konce", kde jsou tyto derivace nulové podmínka uzavřenosti spline křivky kubická spline křivka je potom dána vektorovou funkcí P(t), t t 0, t n, jejíž složky jsou po částech kubické polynomy, splňuje interpolační podmínky P(t i) = P i, i = 0,..., n, splňuje okrajové podmínky a je třídy C 2 vlastní výpočet kubické spline křivky pak probíhá ve dvou krocích: 1 vypočteme tečné vektory ve všech opěrných bodech 2 jednotlivé oblouky kubické spline křivky vypočteme jako Fergusonovy kubiky Bézierovy křivky GPM 6 / 26
Kubické spline křivky Opakování výpočet tečných vektorů ve všech opěrných bodech z požadavku spojitosti druhé derivace kubické spline křivky a s využitím Fergusonovy kubiky dostáváme 1 i k P i + ( 2 + ) 2 i k i+1 k P i+1 + 1 i+1 k P i+2 = = 3 P i+1 k 2 i+2 + ( ) 3 3 i k 2 i+1 k 2 Pi+1 3 P i k i, i = 0,..., n 2 2 doplníme-li jako okrajové podmínky zadané tečné vektory v počátečním a koncovém bodě, dostáváme soustavu n 1 rovnic pro n 1 neznámých 4 1 0... 0 1 4 1... 0... 0... 1 4 1 0... 0 1 4 P 1 P 2.. P n 2 P n 1 = 3(P 2 P 0) P 0 3(P 3 P 1). 3(P n 1 P n 3) 3(P n P n 2) P n po dopočtení tečných vektorů se jednotlivé oblouky spline křivky vypočtou jako příslušné Fergusonovy kubiky Bézierovy křivky GPM 7 / 26
Kubické spline křivky Opakování výpočet tečných vektorů ve všech opěrných bodech z požadavku spojitosti druhé derivace kubické spline křivky a s využitím Fergusonovy kubiky dostáváme 1 i k P i + ( 2 + ) 2 i k i+1 k P i+1 + 1 i+1 k P i+2 = = 3 P i+1 k 2 i+2 + ( ) 3 3 i k 2 i+1 k 2 Pi+1 3 P i k i, i = 0,..., n 2 2 doplníme-li jako okrajové podmínky zadané vektory druhých derivací v počátečním a koncovém bodě, dostáváme soustavu n + 1 rovnic pro n + 1 neznámých 2 1 0... 0 1 4 1... 0... 0... 1 4 1 0... 0 1 2 P 0 P 1.. P n 1 P n = 3(P 1 P 0) A/2 3(P 2 P 0). 3(P n P n 2) 3(P n P n 1) + B/2 po dopočtení tečných vektorů se jednotlivé oblouky spline křivky vypočtou jako příslušné Fergusonovy kubiky Bézierovy křivky GPM 7 / 26
Kubické spline křivky Opakování výpočet tečných vektorů ve všech opěrných bodech z požadavku spojitosti druhé derivace kubické spline křivky a s využitím Fergusonovy kubiky dostáváme 1 i k P i + ( 2 + ) 2 i k i+1 k P i+1 + 1 i+1 k P i+2 = = 3 P i+1 k 2 i+2 + ( ) 3 3 i k 2 i+1 k 2 Pi+1 3 P i k i, i = 0,..., n 2 2 doplníme-li jako okrajovou podmínku podmínku uzavřenosti spline křivky, dostáváme soustavu n + 1 rovnic pro n + 1 neznámých 1 0 0... 1 4 1 4 1... 0 0... 0 0... 1 4 1 4 1... 0 0 1 P 0 P 1.. P n 1 P n = 3(P 0 P n 1) 3(P 2 P 0). 3(P n P n 2) 3(P 1 P n) po dopočtení tečných vektorů se jednotlivé oblouky spline křivky vypočtou jako příslušné Fergusonovy kubiky Bézierovy křivky GPM 7 / 26
Kubické spline křivky Opakování výpočet tečných vektorů ve všech opěrných bodech z požadavku spojitosti druhé derivace kubické spline křivky a s využitím Fergusonovy kubiky dostáváme 1 i k P i + ( 2 + ) 2 i k i+1 k P i+1 + 1 i+1 k P i+2 = = 3 P i+1 k 2 i+2 + ( ) 3 3 i k 2 i+1 k 2 Pi+1 3 P i k i, i = 0,..., n 2 2 doplníme-li jako okrajovou podmínku podmínku uzavřenosti spline křivky, dostáváme soustavu n + 1 rovnic pro n + 1 neznámých 1 0 0... 1 4 1 4 1... 0 0... 0 0... 1 4 1 4 1... 0 0 1 P 0 P 1.. P n 1 P n = 3(P 0 P n 1) 3(P 2 P 0). 3(P n P n 2) 3(P 1 P n) po dopočtení tečných vektorů se jednotlivé oblouky spline křivky vypočtou jako příslušné Fergusonovy kubiky Bézierovy křivky GPM 7 / 26
Spline křivky stupně d Opakování po částech polynomy stupně d, spojitost třídy C d 1 v praxi se nejčastěji používají spline křivky lichého stupně důvodem je symetrie okrajových podmínek kolik potřebujeme doplnit okrajových podmínek pro spline stupně d? pro opěrné body P 0,..., P n máme n oblouků spline křivky pro každý oblouk potřebujeme d + 1 koeficientů, celkem tedy (d + 1)n interpolační podmínky dávají n + 1 rovnic spojitost "nulté"až d 1 derivace poskytuje dalších d(n 1) podmínek celkem tedy máme (d + 1)n d + 1 podmínek musíme tedy doplnit vždy d 1 okrajových podmínek Věta Pro otevřenou spline křivku stupně d (d liché, d > 0) je nutné volit parametrizaci a dalších d 1 podmínek. Věta Uzavřená spline křivka stupně d (d liché, d > 0) je jednoznačně určena svými opěrnými body a parametrizací. Bézierovy křivky GPM 8 / 26
Bézierovy křivky Bézierovy křivky GPM 9 / 26
Bézierovy křivky Bézierovy křivky poprvé zavedli Paul de Casteljau (Citroen) v roce 1959 a nezávisle na něm Pierre Bézier (Renault) v roce 1962 dodnes se používá název Bézierovy křivky, jelikož právě P. Bézier mohl výsledky své práce jako první publikovat nicméně dodnes se pro generování bodů Bézierovy křivky používá de Casteljau algoritmus, který je založený na opakovaném použití lineární interpolace a zobecňuje speciální případ konstrukce paraboly pro křivky vyšších stupňů Bézierovy křivky jsou určeny řídícím polygonem lomenou čárou určenou polohovými vektory bodů P 0,..., P n Bézierovy křivky GPM 10 / 26
Bézierovy křivky Bézierovy křivky poprvé zavedli Paul de Casteljau (Citroen) v roce 1959 a nezávisle na něm Pierre Bézier (Renault) v roce 1962 dodnes se používá název Bézierovy křivky, jelikož právě P. Bézier mohl výsledky své práce jako první publikovat nicméně dodnes se pro generování bodů Bézierovy křivky používá de Casteljau algoritmus, který je založený na opakovaném použití lineární interpolace a zobecňuje speciální případ konstrukce paraboly pro křivky vyšších stupňů Bézierovy křivky jsou určeny řídícím polygonem lomenou čárou určenou polohovými vektory bodů P 0,..., P n Bézierovy křivky GPM 10 / 26
Bézierovy křivky Bézierovy křivky poprvé zavedli Paul de Casteljau (Citroen) v roce 1959 a nezávisle na něm Pierre Bézier (Renault) v roce 1962 dodnes se používá název Bézierovy křivky, jelikož právě P. Bézier mohl výsledky své práce jako první publikovat nicméně dodnes se pro generování bodů Bézierovy křivky používá de Casteljau algoritmus, který je založený na opakovaném použití lineární interpolace a zobecňuje speciální případ konstrukce paraboly pro křivky vyšších stupňů Bézierovy křivky jsou určeny řídícím polygonem lomenou čárou určenou polohovými vektory bodů P 0,..., P n Bézierovy křivky GPM 10 / 26
Bézierovy křivky Bézierovy křivky poprvé zavedli Paul de Casteljau (Citroen) v roce 1959 a nezávisle na něm Pierre Bézier (Renault) v roce 1962 dodnes se používá název Bézierovy křivky, jelikož právě P. Bézier mohl výsledky své práce jako první publikovat nicméně dodnes se pro generování bodů Bézierovy křivky používá de Casteljau algoritmus, který je založený na opakovaném použití lineární interpolace a zobecňuje speciální případ konstrukce paraboly pro křivky vyšších stupňů Bézierovy křivky jsou určeny řídícím polygonem lomenou čárou určenou polohovými vektory bodů P 0,..., P n Bézierovy křivky GPM 10 / 26
Algoritmus de Casteljau motivací byla provázková konstrukce paraboly nyní se podívejme na zobecnění této konstrukce začneme s řídícím polygonem o 4 bodech tyto řídící body mohou být v rovině nebo v prostoru, podle toho dostáváme bud rovinou nebo prostorovou Bézierovu křivku v dalším necht t je parametr z intervalu 0, 1 Bézierovy křivky GPM 11 / 26
Algoritmus de Casteljau v prvním kroku algoritmu provedeme lineární interpolaci podle následujících vztahů pro všechny dvojice po sobě jdoucích bodů a získáme nové body P 1 0(t) = (1 t)p 0 + tp 1, P 1 1(t) = (1 t)p 1 + tp 2, P 1 2(t) = (1 t)p 2 + tp 3 Bézierovy křivky GPM 12 / 26
Algoritmus de Casteljau ve druhém kroku postup opakujeme pro nově získané body v předchozím kroku algoritmu pro stejný parametr t, opět získáme nové body P 2 0(t) = (1 t)p 1 0 + tp 1 1, P 2 1(t) = (1 t)p 1 1 + tp 1 2 Bézierovy křivky GPM 13 / 26
Algoritmus de Casteljau postup ještě jednou opakujeme pro dva nové body z předchozího kroku opět se stejným parametrem t a dostáváme bod na Bézierově křivce P(t) = P 3 0(t) = (1 t)p 2 0 + tp 2 1 Bézierovy křivky GPM 14 / 26
Algoritmus de Casteljau abychom získali všechny body Bézierovy křivky, musíme postup opakovat pro všechna t 0, 1 protože P(0) = P 0 a P(1) = P 3, prochází Bézierova křivka vždy prvním a posledním bodem řídícího polygonu pokud postupně dosadíme do posledního vztahu algoritmu ze všech předcházejících, dostaneme ( ) 3 P(t) = (1 t) 3 P 0 + 3(1 t) 2 tp 1 + 3(1 t)t 2 P 2 + t 3 3 P 3 = (1 t) 3 i t i P i i jelikož stupeň parametru t je nejvýše 3, hovoříme o kubické Bézierově křivce je zřejmé, že opakování postupu lineární interpolace vytváří trojúhelníkové schéma P 0 P 1 P 1 0(t) P 2 P 1 1(t) P 2 0(t) P 3 P 1 2(t) P 2 1(t) P(t) i=0 Bézierovy křivky GPM 15 / 26
Algoritmus de Casteljau abychom získali všechny body Bézierovy křivky, musíme postup opakovat pro všechna t 0, 1 protože P(0) = P 0 a P(1) = P 3, prochází Bézierova křivka vždy prvním a posledním bodem řídícího polygonu pokud postupně dosadíme do posledního vztahu algoritmu ze všech předcházejících, dostaneme ( ) 3 P(t) = (1 t) 3 P 0 + 3(1 t) 2 tp 1 + 3(1 t)t 2 P 2 + t 3 3 P 3 = (1 t) 3 i t i P i i jelikož stupeň parametru t je nejvýše 3, hovoříme o kubické Bézierově křivce je zřejmé, že opakování postupu lineární interpolace vytváří trojúhelníkové schéma P 0 P 1 P 1 0(t) P 2 P 1 1(t) P 2 0(t) P 3 P 1 2(t) P 2 1(t) P(t) i=0 Bézierovy křivky GPM 15 / 26
Algoritmus de Casteljau abychom získali všechny body Bézierovy křivky, musíme postup opakovat pro všechna t 0, 1 protože P(0) = P 0 a P(1) = P 3, prochází Bézierova křivka vždy prvním a posledním bodem řídícího polygonu pokud postupně dosadíme do posledního vztahu algoritmu ze všech předcházejících, dostaneme ( ) 3 P(t) = (1 t) 3 P 0 + 3(1 t) 2 tp 1 + 3(1 t)t 2 P 2 + t 3 3 P 3 = (1 t) 3 i t i P i i jelikož stupeň parametru t je nejvýše 3, hovoříme o kubické Bézierově křivce je zřejmé, že opakování postupu lineární interpolace vytváří trojúhelníkové schéma P 0 P 1 P 1 0(t) P 2 P 1 1(t) P 2 0(t) P 3 P 1 2(t) P 2 1(t) P(t) i=0 Bézierovy křivky GPM 15 / 26
Algoritmus de Casteljau abychom získali všechny body Bézierovy křivky, musíme postup opakovat pro všechna t 0, 1 protože P(0) = P 0 a P(1) = P 3, prochází Bézierova křivka vždy prvním a posledním bodem řídícího polygonu pokud postupně dosadíme do posledního vztahu algoritmu ze všech předcházejících, dostaneme ( ) 3 P(t) = (1 t) 3 P 0 + 3(1 t) 2 tp 1 + 3(1 t)t 2 P 2 + t 3 3 P 3 = (1 t) 3 i t i P i i jelikož stupeň parametru t je nejvýše 3, hovoříme o kubické Bézierově křivce je zřejmé, že opakování postupu lineární interpolace vytváří trojúhelníkové schéma P 0 P 1 P 1 0(t) P 2 P 1 1(t) P 2 0(t) P 3 P 1 2(t) P 2 1(t) P(t) i=0 Bézierovy křivky GPM 15 / 26
Algoritmus de Casteljau abychom získali všechny body Bézierovy křivky, musíme postup opakovat pro všechna t 0, 1 protože P(0) = P 0 a P(1) = P 3, prochází Bézierova křivka vždy prvním a posledním bodem řídícího polygonu pokud postupně dosadíme do posledního vztahu algoritmu ze všech předcházejících, dostaneme ( ) 3 P(t) = (1 t) 3 P 0 + 3(1 t) 2 tp 1 + 3(1 t)t 2 P 2 + t 3 3 P 3 = (1 t) 3 i t i P i i jelikož stupeň parametru t je nejvýše 3, hovoříme o kubické Bézierově křivce je zřejmé, že opakování postupu lineární interpolace vytváří trojúhelníkové schéma P 0 P 1 P 1 0(t) P 2 P 1 1(t) P 2 0(t) P 3 P 1 2(t) P 2 1(t) P(t) i=0 Bézierovy křivky GPM 15 / 26
Algoritmus de Casteljau proces je možné zobecnit pro libovolný počet bodů řídícího polygonu pokud má řídící polygon n + 1 bodů, potom je nutné provést n kroků algoritmu, abychom získali bod na křivce Bézierova křivka je stupně n a její parametrizaci je možné získat ze vztahu ( ) n n P(t) = (1 t) n i t i P i i i=0 algoritmus de Casteljau také umožňuje najít tečnu Bézierovy křivky v daném bodě tečna v bodě P(t) je přímo určena body P n 1 0 (t) a P n 1 1 (t) podobně, tečna v bodě P 0, resp. P n je přímo určena první, resp. poslední hranou řídícího polygonu samozřejmě je tečný vektor Bézierovy křivky možné získat i početně derivací vztahu uvedeného výše pro kubickou B. křivku a její tečný vektor potom ihned dostáváme P (t) = 3(P 2 1(t) P 2 0(t)) P (0) = 3(P 1 P 0) P (1) = 3(P 3 P 2) Bézierovy křivky GPM 16 / 26
Algoritmus de Casteljau proces je možné zobecnit pro libovolný počet bodů řídícího polygonu pokud má řídící polygon n + 1 bodů, potom je nutné provést n kroků algoritmu, abychom získali bod na křivce Bézierova křivka je stupně n a její parametrizaci je možné získat ze vztahu ( ) n n P(t) = (1 t) n i t i P i i i=0 algoritmus de Casteljau také umožňuje najít tečnu Bézierovy křivky v daném bodě tečna v bodě P(t) je přímo určena body P n 1 0 (t) a P n 1 1 (t) podobně, tečna v bodě P 0, resp. P n je přímo určena první, resp. poslední hranou řídícího polygonu samozřejmě je tečný vektor Bézierovy křivky možné získat i početně derivací vztahu uvedeného výše pro kubickou B. křivku a její tečný vektor potom ihned dostáváme P (t) = 3(P 2 1(t) P 2 0(t)) P (0) = 3(P 1 P 0) P (1) = 3(P 3 P 2) Bézierovy křivky GPM 16 / 26
Algoritmus de Casteljau proces je možné zobecnit pro libovolný počet bodů řídícího polygonu pokud má řídící polygon n + 1 bodů, potom je nutné provést n kroků algoritmu, abychom získali bod na křivce Bézierova křivka je stupně n a její parametrizaci je možné získat ze vztahu ( ) n n P(t) = (1 t) n i t i P i i i=0 algoritmus de Casteljau také umožňuje najít tečnu Bézierovy křivky v daném bodě tečna v bodě P(t) je přímo určena body P n 1 0 (t) a P n 1 1 (t) podobně, tečna v bodě P 0, resp. P n je přímo určena první, resp. poslední hranou řídícího polygonu samozřejmě je tečný vektor Bézierovy křivky možné získat i početně derivací vztahu uvedeného výše pro kubickou B. křivku a její tečný vektor potom ihned dostáváme P (t) = 3(P 2 1(t) P 2 0(t)) P (0) = 3(P 1 P 0) P (1) = 3(P 3 P 2) Bézierovy křivky GPM 16 / 26
Algoritmus de Casteljau proces je možné zobecnit pro libovolný počet bodů řídícího polygonu pokud má řídící polygon n + 1 bodů, potom je nutné provést n kroků algoritmu, abychom získali bod na křivce Bézierova křivka je stupně n a její parametrizaci je možné získat ze vztahu ( ) n n P(t) = (1 t) n i t i P i i i=0 algoritmus de Casteljau také umožňuje najít tečnu Bézierovy křivky v daném bodě tečna v bodě P(t) je přímo určena body P n 1 0 (t) a P n 1 1 (t) podobně, tečna v bodě P 0, resp. P n je přímo určena první, resp. poslední hranou řídícího polygonu samozřejmě je tečný vektor Bézierovy křivky možné získat i početně derivací vztahu uvedeného výše pro kubickou B. křivku a její tečný vektor potom ihned dostáváme P (t) = 3(P 2 1(t) P 2 0(t)) P (0) = 3(P 1 P 0) P (1) = 3(P 3 P 2) Bézierovy křivky GPM 16 / 26
Algoritmus de Casteljau proces je možné zobecnit pro libovolný počet bodů řídícího polygonu pokud má řídící polygon n + 1 bodů, potom je nutné provést n kroků algoritmu, abychom získali bod na křivce Bézierova křivka je stupně n a její parametrizaci je možné získat ze vztahu ( ) n n P(t) = (1 t) n i t i P i i i=0 algoritmus de Casteljau také umožňuje najít tečnu Bézierovy křivky v daném bodě tečna v bodě P(t) je přímo určena body P n 1 0 (t) a P n 1 1 (t) podobně, tečna v bodě P 0, resp. P n je přímo určena první, resp. poslední hranou řídícího polygonu samozřejmě je tečný vektor Bézierovy křivky možné získat i početně derivací vztahu uvedeného výše pro kubickou B. křivku a její tečný vektor potom ihned dostáváme P (t) = 3(P 2 1(t) P 2 0(t)) P (0) = 3(P 1 P 0) P (1) = 3(P 3 P 2) Bézierovy křivky GPM 16 / 26
Algoritmus de Casteljau proces je možné zobecnit pro libovolný počet bodů řídícího polygonu pokud má řídící polygon n + 1 bodů, potom je nutné provést n kroků algoritmu, abychom získali bod na křivce Bézierova křivka je stupně n a její parametrizaci je možné získat ze vztahu ( ) n n P(t) = (1 t) n i t i P i i i=0 algoritmus de Casteljau také umožňuje najít tečnu Bézierovy křivky v daném bodě tečna v bodě P(t) je přímo určena body P n 1 0 (t) a P n 1 1 (t) podobně, tečna v bodě P 0, resp. P n je přímo určena první, resp. poslední hranou řídícího polygonu samozřejmě je tečný vektor Bézierovy křivky možné získat i početně derivací vztahu uvedeného výše pro kubickou B. křivku a její tečný vektor potom ihned dostáváme P (t) = 3(P 2 1(t) P 2 0(t)) P (0) = 3(P 1 P 0) P (1) = 3(P 3 P 2) Bézierovy křivky GPM 16 / 26
Bézierovy křivky a Bernsteinovy polynomy Bézierova křivka stupně n určená řídícím polygonem P 0,..., P n je dána vztahem ( ) n n P(t) = (1 t) n i t i P i, t 0, 1 i i=0 }{{} B i n(t) kde B n i (t) jsou tzv. Bernsteinovy polynomy stupně n Bernsteinovy polynomy stupně n tvoří bázi prostoru polynomů stupně n vlastnosti Bernsteinových polynomů: Bi n (t) 0 pro t 0, 1, i = 0,..., n Bernsteinovy polynomy je možné generovat rekurzivně pomocí vztahu platí: Bi n (t) = (1 t)b n 1 i (t) + tb n 1 i 1 (t) n Bi n (t) = 1, i=0 symetrie: B n i (t) = B n n i(1 t) t Bézierovy křivky GPM 17 / 26
Bézierovy křivky a Bernsteinovy polynomy Bézierova křivka stupně n určená řídícím polygonem P 0,..., P n je dána vztahem ( ) n n P(t) = (1 t) n i t i P i, t 0, 1 i i=0 }{{} B i n(t) kde B n i (t) jsou tzv. Bernsteinovy polynomy stupně n Bernsteinovy polynomy stupně n tvoří bázi prostoru polynomů stupně n vlastnosti Bernsteinových polynomů: Bi n (t) 0 pro t 0, 1, i = 0,..., n Bernsteinovy polynomy je možné generovat rekurzivně pomocí vztahu platí: Bi n (t) = (1 t)b n 1 i (t) + tb n 1 i 1 (t) n Bi n (t) = 1, i=0 symetrie: B n i (t) = B n n i(1 t) t Bézierovy křivky GPM 17 / 26
Bézierovy křivky a Bernsteinovy polynomy Bézierova křivka stupně n určená řídícím polygonem P 0,..., P n je dána vztahem ( ) n n P(t) = (1 t) n i t i P i, t 0, 1 i i=0 }{{} B i n(t) kde B n i (t) jsou tzv. Bernsteinovy polynomy stupně n Bernsteinovy polynomy stupně n tvoří bázi prostoru polynomů stupně n vlastnosti Bernsteinových polynomů: Bi n (t) 0 pro t 0, 1, i = 0,..., n Bernsteinovy polynomy je možné generovat rekurzivně pomocí vztahu platí: Bi n (t) = (1 t)b n 1 i (t) + tb n 1 i 1 (t) n Bi n (t) = 1, i=0 symetrie: B n i (t) = B n n i(1 t) t Bézierovy křivky GPM 17 / 26
Bézierovy křivky a Bernsteinovy polynomy Bézierova křivka stupně n určená řídícím polygonem P 0,..., P n je dána vztahem ( ) n n P(t) = (1 t) n i t i P i, t 0, 1 i i=0 }{{} B i n(t) kde B n i (t) jsou tzv. Bernsteinovy polynomy stupně n Bernsteinovy polynomy stupně n tvoří bázi prostoru polynomů stupně n vlastnosti Bernsteinových polynomů: Bi n (t) 0 pro t 0, 1, i = 0,..., n Bernsteinovy polynomy je možné generovat rekurzivně pomocí vztahu platí: Bi n (t) = (1 t)b n 1 i (t) + tb n 1 i 1 (t) n Bi n (t) = 1, i=0 symetrie: B n i (t) = B n n i(1 t) t Bézierovy křivky GPM 17 / 26
Bézierovy křivky a Bernsteinovy polynomy Bézierova křivka stupně n určená řídícím polygonem P 0,..., P n je dána vztahem ( ) n n P(t) = (1 t) n i t i P i, t 0, 1 i i=0 }{{} B i n(t) kde B n i (t) jsou tzv. Bernsteinovy polynomy stupně n Bernsteinovy polynomy stupně n tvoří bázi prostoru polynomů stupně n vlastnosti Bernsteinových polynomů: Bi n (t) 0 pro t 0, 1, i = 0,..., n Bernsteinovy polynomy je možné generovat rekurzivně pomocí vztahu platí: Bi n (t) = (1 t)b n 1 i (t) + tb n 1 i 1 (t) n Bi n (t) = 1, i=0 symetrie: B n i (t) = B n n i(1 t) t Bézierovy křivky GPM 17 / 26
Bézierovy křivky a Bernsteinovy polynomy Bézierova křivka stupně n určená řídícím polygonem P 0,..., P n je dána vztahem ( ) n n P(t) = (1 t) n i t i P i, t 0, 1 i i=0 }{{} B i n(t) kde B n i (t) jsou tzv. Bernsteinovy polynomy stupně n Bernsteinovy polynomy stupně n tvoří bázi prostoru polynomů stupně n vlastnosti Bernsteinových polynomů: Bi n (t) 0 pro t 0, 1, i = 0,..., n Bernsteinovy polynomy je možné generovat rekurzivně pomocí vztahu platí: Bi n (t) = (1 t)b n 1 i (t) + tb n 1 i 1 (t) n Bi n (t) = 1, i=0 symetrie: B n i (t) = B n n i(1 t) t Bézierovy křivky GPM 17 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek počátečním bodem Bézierovy křivky je bod P 0 řídícího polygonu, koncovým bodem je bod P n řídícího polygonu Bézierova křivka se v počátečním bodě dotýká první strany řídícího polygonu, v koncovém bodě se dotýká poslední strany řídícího polygonu navíc platí: P (0) = n(p 1 P 0) a P (1) = n(p n P n 1) napojení Bézierových křivek: mějme dvě Bézierovy křivky P(t), určenou řídícím polygonem P 0,..., P n, a Q(t), určenou řídícím polygonem Q 0,..., Q m jestliže P n = Q 0, potom jsou Bézierovy křivky napojeny ve třídě C 0 pokud leží body P n 1, P n = Q 0, Q 1 na jedné přímce, potom jsou Bézierovy křivky napojeny ve třídě G 1 pokud navíc platí, že n(p n P n 1) = m(q 1 Q 0), potom jsou Bézierovy křivky napojeny ve třídě C 1 jelikož libovolný polynom stupně n je možné vyjádřit jako lineární kombinaci Bernsteinových polynomů, je možné libovolnou polynomiální parametrickou křivku vyjádřit jako Bézierovu křivku vzhledem k symetrii Bernsteinových polynomů je tvar Bézierovy křivky nezávislý na orientaci řídícího polygonu Bézierovy křivky GPM 18 / 26
Vlastnosti Bézierových křivek hodograf Bézierovy křivky určené řídícím polygonem P 0,..., P n je opět Bézierova křivka určená řídícími body D i = n(p i+1 P i), i = 0,..., n 1 podobně je možné získat i vyšší derivace Bézierovy křivky pokud hodograf prochází počátkem, obsahuje původní Bézierova křivka bod vratu Bézierovy křivky mohou obsahovat také smyčky smyčka lze automaticky identifikovat podle hledání bodů samoprůniku bod vratu je takový bod na křivce, pro který není dobře definován tečný vektor, resp. tečný vektor je zde nulový (lze bod vratu identifikovat pomocí algoritmu de Casteljau?) Bézierovy křivky GPM 19 / 26
Vlastnosti Bézierových křivek hodograf Bézierovy křivky určené řídícím polygonem P 0,..., P n je opět Bézierova křivka určená řídícími body D i = n(p i+1 P i), i = 0,..., n 1 podobně je možné získat i vyšší derivace Bézierovy křivky pokud hodograf prochází počátkem, obsahuje původní Bézierova křivka bod vratu Bézierovy křivky mohou obsahovat také smyčky smyčka lze automaticky identifikovat podle hledání bodů samoprůniku bod vratu je takový bod na křivce, pro který není dobře definován tečný vektor, resp. tečný vektor je zde nulový (lze bod vratu identifikovat pomocí algoritmu de Casteljau?) Bézierovy křivky GPM 19 / 26
Vlastnosti Bézierových křivek hodograf Bézierovy křivky určené řídícím polygonem P 0,..., P n je opět Bézierova křivka určená řídícími body D i = n(p i+1 P i), i = 0,..., n 1 podobně je možné získat i vyšší derivace Bézierovy křivky pokud hodograf prochází počátkem, obsahuje původní Bézierova křivka bod vratu Bézierovy křivky mohou obsahovat také smyčky smyčka lze automaticky identifikovat podle hledání bodů samoprůniku bod vratu je takový bod na křivce, pro který není dobře definován tečný vektor, resp. tečný vektor je zde nulový (lze bod vratu identifikovat pomocí algoritmu de Casteljau?) Bézierovy křivky GPM 19 / 26
Vlastnosti Bézierových křivek hodograf Bézierovy křivky určené řídícím polygonem P 0,..., P n je opět Bézierova křivka určená řídícími body D i = n(p i+1 P i), i = 0,..., n 1 podobně je možné získat i vyšší derivace Bézierovy křivky pokud hodograf prochází počátkem, obsahuje původní Bézierova křivka bod vratu Bézierovy křivky mohou obsahovat také smyčky smyčka lze automaticky identifikovat podle hledání bodů samoprůniku bod vratu je takový bod na křivce, pro který není dobře definován tečný vektor, resp. tečný vektor je zde nulový (lze bod vratu identifikovat pomocí algoritmu de Casteljau?) Bézierovy křivky GPM 19 / 26
Vlastnosti Bézierových křivek hodograf Bézierovy křivky určené řídícím polygonem P 0,..., P n je opět Bézierova křivka určená řídícími body D i = n(p i+1 P i), i = 0,..., n 1 podobně je možné získat i vyšší derivace Bézierovy křivky pokud hodograf prochází počátkem, obsahuje původní Bézierova křivka bod vratu Bézierovy křivky mohou obsahovat také smyčky smyčka lze automaticky identifikovat podle hledání bodů samoprůniku bod vratu je takový bod na křivce, pro který není dobře definován tečný vektor, resp. tečný vektor je zde nulový (lze bod vratu identifikovat pomocí algoritmu de Casteljau?) Bézierovy křivky GPM 19 / 26
Vlastnosti Bézierových křivek hodograf Bézierovy křivky určené řídícím polygonem P 0,..., P n je opět Bézierova křivka určená řídícími body D i = n(p i+1 P i), i = 0,..., n 1 podobně je možné získat i vyšší derivace Bézierovy křivky pokud hodograf prochází počátkem, obsahuje původní Bézierova křivka bod vratu Bézierovy křivky mohou obsahovat také smyčky smyčka lze automaticky identifikovat podle hledání bodů samoprůniku bod vratu je takový bod na křivce, pro který není dobře definován tečný vektor, resp. tečný vektor je zde nulový (lze bod vratu identifikovat pomocí algoritmu de Casteljau?) Bézierovy křivky GPM 19 / 26
Vlastnosti Bézierových křivek Bézierova křivka je vždy obsažena v konvexním obalu svého řídícího polygonu speciálním případem je tzv. linear precision pokud jsou řídící body na přímce a tvoří tak úsečku, pak je Bézierovou křivkou také tato úsečka afinní invariantnost je jedno, jestli afinně transformujeme Bézierovu křivku nebo její řídící polygon a vypočteme Bézierovu křivku pro tento transformovaný řídící polygon, v obou případech dostaneme to samé variation diminishing property počet průsečíků libovolné přímky/roviny s Bézierovou křivkou je nejvýše roven počtu průsečíků této přímky/roviny s řídícím polygonem Bézierovy křivky GPM 20 / 26
Vlastnosti Bézierových křivek Bézierova křivka je vždy obsažena v konvexním obalu svého řídícího polygonu speciálním případem je tzv. linear precision pokud jsou řídící body na přímce a tvoří tak úsečku, pak je Bézierovou křivkou také tato úsečka afinní invariantnost je jedno, jestli afinně transformujeme Bézierovu křivku nebo její řídící polygon a vypočteme Bézierovu křivku pro tento transformovaný řídící polygon, v obou případech dostaneme to samé variation diminishing property počet průsečíků libovolné přímky/roviny s Bézierovou křivkou je nejvýše roven počtu průsečíků této přímky/roviny s řídícím polygonem Bézierovy křivky GPM 20 / 26
Vlastnosti Bézierových křivek Bézierova křivka je vždy obsažena v konvexním obalu svého řídícího polygonu speciálním případem je tzv. linear precision pokud jsou řídící body na přímce a tvoří tak úsečku, pak je Bézierovou křivkou také tato úsečka afinní invariantnost je jedno, jestli afinně transformujeme Bézierovu křivku nebo její řídící polygon a vypočteme Bézierovu křivku pro tento transformovaný řídící polygon, v obou případech dostaneme to samé variation diminishing property počet průsečíků libovolné přímky/roviny s Bézierovou křivkou je nejvýše roven počtu průsečíků této přímky/roviny s řídícím polygonem Bézierovy křivky GPM 20 / 26
Vlastnosti Bézierových křivek algoritmus de Casteljau je možné také využít k rozdělení na dvě a více částí pokud proces rozdělení dostatečně dlouho opakujeme, dostaneme dobrou aproximaci odpovídající Bézierovy křivky po částech lineární křivkou (polygonem) tento proces se nazývá ořezávání rohů Bézierovy křivky GPM 21 / 26
Vlastnosti Bézierových křivek algoritmus de Casteljau je možné také využít k rozdělení na dvě a více částí pokud proces rozdělení dostatečně dlouho opakujeme, dostaneme dobrou aproximaci odpovídající Bézierovy křivky po částech lineární křivkou (polygonem) tento proces se nazývá ořezávání rohů Bézierovy křivky GPM 21 / 26
Vlastnosti Bézierových křivek algoritmus de Casteljau je možné také využít k rozdělení na dvě a více částí pokud proces rozdělení dostatečně dlouho opakujeme, dostaneme dobrou aproximaci odpovídající Bézierovy křivky po částech lineární křivkou (polygonem) tento proces se nazývá ořezávání rohů Bézierovy křivky GPM 21 / 26
Vlastnosti Bézierových křivek kvadratické a kubické Bézierovy křivky se používají pro popis TrueType a PostScript fontů jelikož pro řídící polygon o n + 1 bodech, je Bézierova křivka stupně n, jsou tyto křivky s rostoucím stupněm nepříliš praktické křivka je s rostucím stupněm stále více vzdálená od řídícího polygonu pokud přidáme nový řídící bod nebo změníme polohu některé řídícího bodu, změní se tvar celé křivky, což je z designérské hlediska nepříliš praktické Bézierovy křivky GPM 22 / 26
Zvýšení stupně Bézierovy křivky Bézierova křivka stupně n může být přesně reprezentována jako Bézierova křivka stupně n + 1 musíme jen najít příslušný řídící polygon n + 2 bodů, který odpovídá stejné křivce algoritmus výpočtu je založen na následujících vztazích: potom (1 t)bi n (t) = n + 1 i n + 1 Bn+1 i (t), tbi n (t) = i + 1 n + 1 Bn+1 i+1 (t) P(t) = ((1 t) + t) P(t) = n+1 i=0 (n + 1 i)p i + ip i 1 n + 1 } {{ } P i B n+1 i (t) tedy řídící body ekvivalentní Bézierovy křivky stupně n + 1 jsou dány vztahem P i = α ip i 1 + (1 α i)p i, α i = i n + 1 Bézierovy křivky GPM 23 / 26
Zvýšení stupně Bézierovy křivky Bézierova křivka stupně n může být přesně reprezentována jako Bézierova křivka stupně n + 1 musíme jen najít příslušný řídící polygon n + 2 bodů, který odpovídá stejné křivce algoritmus výpočtu je založen na následujících vztazích: potom (1 t)bi n (t) = n + 1 i n + 1 Bn+1 i (t), tbi n (t) = i + 1 n + 1 Bn+1 i+1 (t) P(t) = ((1 t) + t) P(t) = n+1 i=0 (n + 1 i)p i + ip i 1 n + 1 } {{ } P i B n+1 i (t) tedy řídící body ekvivalentní Bézierovy křivky stupně n + 1 jsou dány vztahem P i = α ip i 1 + (1 α i)p i, α i = i n + 1 Bézierovy křivky GPM 23 / 26
Zvýšení stupně Bézierovy křivky Bézierova křivka stupně n může být přesně reprezentována jako Bézierova křivka stupně n + 1 musíme jen najít příslušný řídící polygon n + 2 bodů, který odpovídá stejné křivce algoritmus výpočtu je založen na následujících vztazích: potom (1 t)bi n (t) = n + 1 i n + 1 Bn+1 i (t), tbi n (t) = i + 1 n + 1 Bn+1 i+1 (t) P(t) = ((1 t) + t) P(t) = n+1 i=0 (n + 1 i)p i + ip i 1 n + 1 } {{ } P i B n+1 i (t) tedy řídící body ekvivalentní Bézierovy křivky stupně n + 1 jsou dány vztahem P i = α ip i 1 + (1 α i)p i, α i = i n + 1 Bézierovy křivky GPM 23 / 26
Zvýšení stupně Bézierovy křivky Bézierova křivka stupně n může být přesně reprezentována jako Bézierova křivka stupně n + 1 musíme jen najít příslušný řídící polygon n + 2 bodů, který odpovídá stejné křivce algoritmus výpočtu je založen na následujících vztazích: potom (1 t)bi n (t) = n + 1 i n + 1 Bn+1 i (t), tbi n (t) = i + 1 n + 1 Bn+1 i+1 (t) P(t) = ((1 t) + t) P(t) = n+1 i=0 (n + 1 i)p i + ip i 1 n + 1 } {{ } P i B n+1 i (t) tedy řídící body ekvivalentní Bézierovy křivky stupně n + 1 jsou dány vztahem P i = α ip i 1 + (1 α i)p i, α i = i n + 1 Bézierovy křivky GPM 23 / 26
Konverze mezi polynomiálními bázemi již dříve jsme zmínili, že je možné každou křivku s polynomiální parametrizací vyjádřit jako Bézierovu křivku nyní se tedy zaměříme na konverzi Bézierovy křivky na odpovídající standardní polynomiální parametrizaci a naopak lze využít Taylorův rozvoj B(t) = B(0) + B (0)t + B (0) 2 t 2 + + B(i) (0) i! t i potom P(t) B(t) právě tehdy, když P i = P(i) (0) i! = B(i) (0) i! koeficienty B (i) (0) je možné najít jednoduše pomocí tabulky diferencí založené na vztahu pro řídící body derivace Bézierovy křivky např. pro kubickou B. k. B 0 0 = B 0 = P 0 B 0 1 = B 1 B 0 2 = B 2 B 0 3 = B 3 B 1 0 = B 0 1 B 0 0 = P 1/3 B 1 1 = B 0 2 B 0 1 B 1 2 = B 0 3 B 0 2 B 2 0 = B 1 1 B 1 0 = P 2/3 B 2 1 = B 1 2 B 1 1 B 3 0 = B 2 1 B 2 0 = P 3 tedy obecně P i = ( n i) B i 0 pro opačný postup získáme rovnou levý sloupec tabulky, postupujeme opačně a Bézierovy koeficienty získáme v prvním řádku Bézierovy křivky GPM 24 / 26
Konverze mezi polynomiálními bázemi již dříve jsme zmínili, že je možné každou křivku s polynomiální parametrizací vyjádřit jako Bézierovu křivku nyní se tedy zaměříme na konverzi Bézierovy křivky na odpovídající standardní polynomiální parametrizaci a naopak lze využít Taylorův rozvoj B(t) = B(0) + B (0)t + B (0) 2 t 2 + + B(i) (0) i! t i potom P(t) B(t) právě tehdy, když P i = P(i) (0) i! = B(i) (0) i! koeficienty B (i) (0) je možné najít jednoduše pomocí tabulky diferencí založené na vztahu pro řídící body derivace Bézierovy křivky např. pro kubickou B. k. B 0 0 = B 0 = P 0 B 0 1 = B 1 B 0 2 = B 2 B 0 3 = B 3 B 1 0 = B 0 1 B 0 0 = P 1/3 B 1 1 = B 0 2 B 0 1 B 1 2 = B 0 3 B 0 2 B 2 0 = B 1 1 B 1 0 = P 2/3 B 2 1 = B 1 2 B 1 1 B 3 0 = B 2 1 B 2 0 = P 3 tedy obecně P i = ( n i) B i 0 pro opačný postup získáme rovnou levý sloupec tabulky, postupujeme opačně a Bézierovy koeficienty získáme v prvním řádku Bézierovy křivky GPM 24 / 26
Konverze mezi polynomiálními bázemi již dříve jsme zmínili, že je možné každou křivku s polynomiální parametrizací vyjádřit jako Bézierovu křivku nyní se tedy zaměříme na konverzi Bézierovy křivky na odpovídající standardní polynomiální parametrizaci a naopak lze využít Taylorův rozvoj B(t) = B(0) + B (0)t + B (0) 2 t 2 + + B(i) (0) i! t i potom P(t) B(t) právě tehdy, když P i = P(i) (0) i! = B(i) (0) i! koeficienty B (i) (0) je možné najít jednoduše pomocí tabulky diferencí založené na vztahu pro řídící body derivace Bézierovy křivky např. pro kubickou B. k. B 0 0 = B 0 = P 0 B 0 1 = B 1 B 0 2 = B 2 B 0 3 = B 3 B 1 0 = B 0 1 B 0 0 = P 1/3 B 1 1 = B 0 2 B 0 1 B 1 2 = B 0 3 B 0 2 B 2 0 = B 1 1 B 1 0 = P 2/3 B 2 1 = B 1 2 B 1 1 B 3 0 = B 2 1 B 2 0 = P 3 tedy obecně P i = ( n i) B i 0 pro opačný postup získáme rovnou levý sloupec tabulky, postupujeme opačně a Bézierovy koeficienty získáme v prvním řádku Bézierovy křivky GPM 24 / 26
Konverze mezi polynomiálními bázemi již dříve jsme zmínili, že je možné každou křivku s polynomiální parametrizací vyjádřit jako Bézierovu křivku nyní se tedy zaměříme na konverzi Bézierovy křivky na odpovídající standardní polynomiální parametrizaci a naopak lze využít Taylorův rozvoj B(t) = B(0) + B (0)t + B (0) 2 t 2 + + B(i) (0) i! t i potom P(t) B(t) právě tehdy, když P i = P(i) (0) i! = B(i) (0) i! koeficienty B (i) (0) je možné najít jednoduše pomocí tabulky diferencí založené na vztahu pro řídící body derivace Bézierovy křivky např. pro kubickou B. k. B 0 0 = B 0 = P 0 B 0 1 = B 1 B 0 2 = B 2 B 0 3 = B 3 B 1 0 = B 0 1 B 0 0 = P 1/3 B 1 1 = B 0 2 B 0 1 B 1 2 = B 0 3 B 0 2 B 2 0 = B 1 1 B 1 0 = P 2/3 B 2 1 = B 1 2 B 1 1 B 3 0 = B 2 1 B 2 0 = P 3 tedy obecně P i = ( n i) B i 0 pro opačný postup získáme rovnou levý sloupec tabulky, postupujeme opačně a Bézierovy koeficienty získáme v prvním řádku Bézierovy křivky GPM 24 / 26
Konverze mezi polynomiálními bázemi již dříve jsme zmínili, že je možné každou křivku s polynomiální parametrizací vyjádřit jako Bézierovu křivku nyní se tedy zaměříme na konverzi Bézierovy křivky na odpovídající standardní polynomiální parametrizaci a naopak lze využít Taylorův rozvoj B(t) = B(0) + B (0)t + B (0) 2 t 2 + + B(i) (0) i! t i potom P(t) B(t) právě tehdy, když P i = P(i) (0) i! = B(i) (0) i! koeficienty B (i) (0) je možné najít jednoduše pomocí tabulky diferencí založené na vztahu pro řídící body derivace Bézierovy křivky např. pro kubickou B. k. B 0 0 = B 0 = P 0 B 0 1 = B 1 B 0 2 = B 2 B 0 3 = B 3 B 1 0 = B 0 1 B 0 0 = P 1/3 B 1 1 = B 0 2 B 0 1 B 1 2 = B 0 3 B 0 2 B 2 0 = B 1 1 B 1 0 = P 2/3 B 2 1 = B 1 2 B 1 1 B 3 0 = B 2 1 B 2 0 = P 3 tedy obecně P i = ( n i) B i 0 pro opačný postup získáme rovnou levý sloupec tabulky, postupujeme opačně a Bézierovy koeficienty získáme v prvním řádku Bézierovy křivky GPM 24 / 26
Konverze kubické spline křivky na Bézierovy křivky kubická spline křivka je složena z Fergusonových kubik, určených F i, F i+1, F i, F i+1 každý oblouk spline křivky je možné reprezentovat jako kubickou B. k. pro nalezení řídících bodů této Bézierovy křivky máme 2 možnosti: 1 tečné vektory na začátku a konci Bézierovy křivky, určené P 0,..., P 3, jsou 3(P 1 P 0) a 3(P 3 P 2) odtud přímo P 0 = F i, P 1 = P 0 + 1 3 F i, P 2 = P 3 1 3 F i+1, P 3 = F i+1 2 můžeme využít algoritmus na konverzi mezi polynomiálními bázemi Bézierovy křivky GPM 25 / 26
Konverze kubické spline křivky na Bézierovy křivky kubická spline křivka je složena z Fergusonových kubik, určených F i, F i+1, F i, F i+1 každý oblouk spline křivky je možné reprezentovat jako kubickou B. k. pro nalezení řídících bodů této Bézierovy křivky máme 2 možnosti: 1 tečné vektory na začátku a konci Bézierovy křivky, určené P 0,..., P 3, jsou 3(P 1 P 0) a 3(P 3 P 2) odtud přímo P 0 = F i, P 1 = P 0 + 1 3 F i, P 2 = P 3 1 3 F i+1, P 3 = F i+1 2 můžeme využít algoritmus na konverzi mezi polynomiálními bázemi Bézierovy křivky GPM 25 / 26
Konverze kubické spline křivky na Bézierovy křivky kubická spline křivka je složena z Fergusonových kubik, určených F i, F i+1, F i, F i+1 každý oblouk spline křivky je možné reprezentovat jako kubickou B. k. pro nalezení řídících bodů této Bézierovy křivky máme 2 možnosti: 1 tečné vektory na začátku a konci Bézierovy křivky, určené P 0,..., P 3, jsou 3(P 1 P 0) a 3(P 3 P 2) odtud přímo P 0 = F i, P 1 = P 0 + 1 3 F i, P 2 = P 3 1 3 F i+1, P 3 = F i+1 2 můžeme využít algoritmus na konverzi mezi polynomiálními bázemi Bézierovy křivky GPM 25 / 26
Blossom moderní způsob popisu Bézierových křivek, jedná se o zobecnění algoritmu de Casteljau algoritmus de Casteljau neprovádíme pro fixní hodnotu parametru t, ale v každém kroku volíme obecně jiný parametr např. pro kubickou B. k. P 0 P 1 P 1 0(t 1) P 2 P 1 1(t 1) P 2 0(t 1, t 2) P 3 P 1 2(t 1) P 2 1(t 1, t 2) P 3 0(t 1, t 2, t 3) P 3 0(t 1, t 2, t 3) je funkcí 3 proměnných, kterou nazýváme blossom křivky P(t) jestliže t = t 1 = t 2 = t 3, je P 3 0(t, t, t) = P(t) body řídícího polygonu: P 3 0(0, 0, 0) = P 0, P 3 0(0, 0, 1) = P 1, P 3 0(0, 1, 1) = P 2, P 3 0(1, 1, 1) = P 3 podobně můžeme získat libovolný bod vygenerovaný v průběhu algoritmu de Casteljau jen vhodnou volbou parametrů blossomu, např. P 3 0(0, 0, t) = P 1 0 blossom je symetrický, tj. nezáleží na pořadí argumentů blossomu blossom je multiafinní, tj. platí P 3 0(αr + βs, t 2, t 3) = αp 3 0(r, t 2, t 3) + βp 3 0(s, t 2, t 3), α + β = 1 Bézierovy křivky GPM 26 / 26
Blossom moderní způsob popisu Bézierových křivek, jedná se o zobecnění algoritmu de Casteljau algoritmus de Casteljau neprovádíme pro fixní hodnotu parametru t, ale v každém kroku volíme obecně jiný parametr např. pro kubickou B. k. P 0 P 1 P 1 0(t 1) P 2 P 1 1(t 1) P 2 0(t 1, t 2) P 3 P 1 2(t 1) P 2 1(t 1, t 2) P 3 0(t 1, t 2, t 3) P 3 0(t 1, t 2, t 3) je funkcí 3 proměnných, kterou nazýváme blossom křivky P(t) jestliže t = t 1 = t 2 = t 3, je P 3 0(t, t, t) = P(t) body řídícího polygonu: P 3 0(0, 0, 0) = P 0, P 3 0(0, 0, 1) = P 1, P 3 0(0, 1, 1) = P 2, P 3 0(1, 1, 1) = P 3 podobně můžeme získat libovolný bod vygenerovaný v průběhu algoritmu de Casteljau jen vhodnou volbou parametrů blossomu, např. P 3 0(0, 0, t) = P 1 0 blossom je symetrický, tj. nezáleží na pořadí argumentů blossomu blossom je multiafinní, tj. platí P 3 0(αr + βs, t 2, t 3) = αp 3 0(r, t 2, t 3) + βp 3 0(s, t 2, t 3), α + β = 1 Bézierovy křivky GPM 26 / 26
Blossom moderní způsob popisu Bézierových křivek, jedná se o zobecnění algoritmu de Casteljau algoritmus de Casteljau neprovádíme pro fixní hodnotu parametru t, ale v každém kroku volíme obecně jiný parametr např. pro kubickou B. k. P 0 P 1 P 1 0(t 1) P 2 P 1 1(t 1) P 2 0(t 1, t 2) P 3 P 1 2(t 1) P 2 1(t 1, t 2) P 3 0(t 1, t 2, t 3) P 3 0(t 1, t 2, t 3) je funkcí 3 proměnných, kterou nazýváme blossom křivky P(t) jestliže t = t 1 = t 2 = t 3, je P 3 0(t, t, t) = P(t) body řídícího polygonu: P 3 0(0, 0, 0) = P 0, P 3 0(0, 0, 1) = P 1, P 3 0(0, 1, 1) = P 2, P 3 0(1, 1, 1) = P 3 podobně můžeme získat libovolný bod vygenerovaný v průběhu algoritmu de Casteljau jen vhodnou volbou parametrů blossomu, např. P 3 0(0, 0, t) = P 1 0 blossom je symetrický, tj. nezáleží na pořadí argumentů blossomu blossom je multiafinní, tj. platí P 3 0(αr + βs, t 2, t 3) = αp 3 0(r, t 2, t 3) + βp 3 0(s, t 2, t 3), α + β = 1 Bézierovy křivky GPM 26 / 26
Blossom moderní způsob popisu Bézierových křivek, jedná se o zobecnění algoritmu de Casteljau algoritmus de Casteljau neprovádíme pro fixní hodnotu parametru t, ale v každém kroku volíme obecně jiný parametr např. pro kubickou B. k. P 0 P 1 P 1 0(t 1) P 2 P 1 1(t 1) P 2 0(t 1, t 2) P 3 P 1 2(t 1) P 2 1(t 1, t 2) P 3 0(t 1, t 2, t 3) P 3 0(t 1, t 2, t 3) je funkcí 3 proměnných, kterou nazýváme blossom křivky P(t) jestliže t = t 1 = t 2 = t 3, je P 3 0(t, t, t) = P(t) body řídícího polygonu: P 3 0(0, 0, 0) = P 0, P 3 0(0, 0, 1) = P 1, P 3 0(0, 1, 1) = P 2, P 3 0(1, 1, 1) = P 3 podobně můžeme získat libovolný bod vygenerovaný v průběhu algoritmu de Casteljau jen vhodnou volbou parametrů blossomu, např. P 3 0(0, 0, t) = P 1 0 blossom je symetrický, tj. nezáleží na pořadí argumentů blossomu blossom je multiafinní, tj. platí P 3 0(αr + βs, t 2, t 3) = αp 3 0(r, t 2, t 3) + βp 3 0(s, t 2, t 3), α + β = 1 Bézierovy křivky GPM 26 / 26
Blossom moderní způsob popisu Bézierových křivek, jedná se o zobecnění algoritmu de Casteljau algoritmus de Casteljau neprovádíme pro fixní hodnotu parametru t, ale v každém kroku volíme obecně jiný parametr např. pro kubickou B. k. P 0 P 1 P 1 0(t 1) P 2 P 1 1(t 1) P 2 0(t 1, t 2) P 3 P 1 2(t 1) P 2 1(t 1, t 2) P 3 0(t 1, t 2, t 3) P 3 0(t 1, t 2, t 3) je funkcí 3 proměnných, kterou nazýváme blossom křivky P(t) jestliže t = t 1 = t 2 = t 3, je P 3 0(t, t, t) = P(t) body řídícího polygonu: P 3 0(0, 0, 0) = P 0, P 3 0(0, 0, 1) = P 1, P 3 0(0, 1, 1) = P 2, P 3 0(1, 1, 1) = P 3 podobně můžeme získat libovolný bod vygenerovaný v průběhu algoritmu de Casteljau jen vhodnou volbou parametrů blossomu, např. P 3 0(0, 0, t) = P 1 0 blossom je symetrický, tj. nezáleží na pořadí argumentů blossomu blossom je multiafinní, tj. platí P 3 0(αr + βs, t 2, t 3) = αp 3 0(r, t 2, t 3) + βp 3 0(s, t 2, t 3), α + β = 1 Bézierovy křivky GPM 26 / 26