Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

Podobné dokumenty
15. listopadu Matematický ústav UK Matematicko-fyzikální fakulta. Hermitovská interpolace

Jana Dannhoferová Ústav informatiky, PEF MZLU

KMA/GPM Barycentrické souřadnice a

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

Kristýna Bémová. 13. prosince 2007

Aproximační křivky. Trocha historie. geometrické modelování veliký pokrok v oblasti letectví 1944 Roy Liming

Křivky a plochy technické praxe

Plochy zadané okrajovými křivkami

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

Základní vlastnosti křivek

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

Plochy počítačové grafiky II. Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS

Interpolace pomocí splajnu

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

5. Plochy v počítačové grafice. (Bézier, Coons)

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

1 Polynomiální interpolace

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

0.1 Úvod do lineární algebry

Subdivision křivky a plochy

Matematická analýza pro informatiky I.

Offsety KMA/ITG Informační technologie ve vyučování geometrie Offsety ITG 1 / 33

Matematický ústav UK Matematicko-fyzikální fakulta

Matematický ústav UK Matematicko-fyzikální fakulta

f(x) = arccotg x 2 x lim f(x). Určete všechny asymptoty grafu x 2 2 =

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Interpolace Lagrangeovy polynomy. 29. října 2012

Interpolace, aproximace

FERGUSONOVA KUBIKA. ( u) ( ) ( ) X s X s. Kubický spline C 2 má dva stupně volnosti Q 1 Q 2

POČÍTAČOVÁ GRAFIKA - PGR PROGRAM PŘEDNÁŠEK. Po 9:00-10:30, KN:A-214

0.1 Úvod do lineární algebry

Matematika I, část I. Rovnici (1) nazýváme vektorovou rovnicí roviny ABC. Rovina ABC prochází bodem A a říkáme, že má zaměření u, v. X=A+r.u+s.

Soustavy lineárních rovnic

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

Derivace funkcí více proměnných

Čebyševovy aproximace

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]


Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

NURBS REPREZENTACE KŘIVEK V MAPLE

Elementární křivky a plochy

1 Determinanty a inverzní matice

1 Linearní prostory nad komplexními čísly

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

X = A + tu. Obr x = a 1 + tu 1 y = a 2 + tu 2, t R, y = kx + q, k, q R (6.1)

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Parametrická rovnice přímky v rovině

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

IB112 Základy matematiky

3. SB 3. SC. Kružnice nemá s úběžnicí žádný společný bod. Obraz nemá žádný nevlastní bod. Tímto obrazem je křivka zvaná elipsa.

úloh pro ODR jednokrokové metody

Úvodní informace. 17. února 2018

12. Křivkové integrály

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

Numerické řešení diferenciálních rovnic

5. Lokální, vázané a globální extrémy

Přehled. Motivace Úvod. Křivky a plochy počítačové grafiky. Závěr. Rozvoj počítačové grafiky Výpočetní geometrie

na magisterský studijní obor Učitelství matematiky pro střední školy

5. Statika poloha střediska sil

Soustavy linea rnı ch rovnic

Kombinatorická minimalizace

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze

Rekonstrukce ploch: Polygonální a analytická reprezentace Vybrané metody aproximace ploch

6 Lineární geometrie. 6.1 Lineární variety

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

5. Interpolace a aproximace funkcí

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Zobrazování 2D Nadpis křivek 2 Nadpis 3

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

9 Kolmost vektorových podprostorů

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

Lingebraické kapitolky - Analytická geometrie

Odhad parametrů N(µ, σ 2 )

Úvod do lineární algebry

Extrémy funkce dvou proměnných

GEODETICKÉ VÝPOČTY I.

4EK213 LINEÁRNÍ MODELY

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

Definice derivace v bodě

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Příklad 1 ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 6

Diferenciál a Taylorův polynom

1. DIFERENCIÁLNÍ POČET FUNKCE DVOU PROMĚNNÝCH

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Interpolace, ortogonální polynomy, Gaussova kvadratura

Metoda nejmenších čtverců Michal Čihák 26. listopadu 2012

Základní vlastnosti ploch

Úvodní informace Soustavy lineárních rovnic. 12. února 2018

Kapitola 10: Diferenciální rovnice 1/14

III. Diferenciál funkce a tečná rovina 8. Diferenciál funkce. Přírůstek funkce. a = (x 0, y 0 ), h = (h 1, h 2 ).

Aplikovaná numerická matematika

Učební texty k státní bakalářské zkoušce Matematika Diferenciální rovnice. študenti MFF 15. augusta 2008

pouze u některých typů rovnic a v tomto textu se jím nebudeme až na

Transkript:

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