Univerzita Karlova v Praze Matematicko-fyzikální fakulta

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

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

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

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

Základní vlastnosti křivek

Jana Dannhoferová Ústav informatiky, PEF MZLU

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

Elementární křivky a plochy

KMA/GPM Barycentrické souřadnice a

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

Interpolace, ortogonální polynomy, Gaussova kvadratura

Občas se používá značení f x (x 0, y 0 ), resp. f y (x 0, y 0 ). Parciální derivace f. rovnoběžného s osou y a z:

MATURITNÍ TÉMATA Z MATEMATIKY

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.

Otázku, kterými body prochází větev implicitní funkce řeší následující věta.

2. kapitola: Euklidovské prostory

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Úvodní informace. 17. února 2018

Maturitní témata z matematiky

7. Aplikace derivace 7E. Křivky. 7E. Křivky

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

Definice 1.1. Nechť je M množina. Funkci ρ : M M R nazveme metrikou, jestliže má následující vlastnosti:

Primitivní funkce a Riemann uv integrál Lineární algebra Taylor uv polynom Extrémy funkcí více prom ˇenných Matematika III Matematika III Program

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

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

Diferenciální geometrie

Matematika I 12a Euklidovská geometrie

Lingebraické kapitolky - Analytická geometrie

Čebyševovy aproximace

Vlastní čísla a vlastní vektory

ANALYTICKÁ GEOMETRIE V ROVINĚ

Drsná matematika III 1. přednáška Funkce více proměnných: křivky, směrové derivace, diferenciál

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

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.

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

1 Linearní prostory nad komplexními čísly

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

6. ANALYTICKÁ GEOMETRIE

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

1 Analytická geometrie

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Analytická geometrie lineárních útvarů

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

Michal Zamboj. December 23, 2016

Limita a spojitost funkce

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Lineární algebra : Metrická geometrie

1 Řešení soustav lineárních rovnic

6.1 Vektorový prostor

1 Topologie roviny a prostoru

19 Eukleidovský bodový prostor

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

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

Odvození středové rovnice kružnice se středem S [m; n] a o poloměru r. Bod X ležící na kružnici má souřadnice [x; y].

Křivky a plochy technické praxe

Diferenˇcní rovnice Diferenciální rovnice Matematika IV Matematika IV Program

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

Michal Zamboj. January 4, 2018

OBECNOSTI KONVERGENCE V R N

15 Maticový a vektorový počet II

8 Matice a determinanty

1 Projekce a projektory

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

Základy maticového počtu Matice, determinant, definitnost

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


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

1 Polynomiální interpolace

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

6. Vektorový počet Studijní text. 6. Vektorový počet

Matematická analýza III.

0.1 Úvod do lineární algebry

EUKLIDOVSKÉ PROSTORY

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Maturitní otázky z předmětu MATEMATIKA

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

Operace s maticemi. 19. února 2018

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

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í

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

Úvod do lineární algebry

1. a) Určete parciální derivace prvního řádu funkce z = z(x, y) dané rovnicí z 3 3xy 8 = 0 v

CZ 1.07/1.1.32/

14. přednáška. Přímka

Požadavky k písemné přijímací zkoušce z matematiky do navazujícího magisterského studia pro neučitelské obory

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

10 Funkce více proměnných

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

9 Kolmost vektorových podprostorů

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

Matematická analýza pro informatiky I.

0.1 Úvod do lineární algebry

3.2. ANALYTICKÁ GEOMETRIE ROVINY

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

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

DERIVACE. ln 7. Urči, kdy funkce roste a klesá a dále kdy je konkávní a

Transkript:

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Lenka Zavrtálková Bézierovy křivky Katedra numerické matematiky Vedoucí bakalářské práce: Doc. RNDr. Karel Najzar, CSc. Studijní program: Obecná matematika 2006

Prohlašuji, že jsem svou bakalářskou práci napsala samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce a jejím zveřejňováním. V Praze dne 18.7.2006 Lenka Zavrtálková 2

Obsah 1 Základní pojmy z geometrie a teorie křivek 6 1.1 Afinní prostor........................ 6 1.2 Afinní kombinace...................... 7 1.3 Afinní zobrazení....................... 8 1.4 Parametrické křivky.................... 8 2 Bézierova reprezentace 13 2.1 Bernsteinovy polynomy................... 13 2.2 Bézierova reprezentace................... 14 2.3 Algoritmus de Casteljau.................. 16 2.4 Bézierovy křivky a derivace................ 17 2.5 Singulární parametrizace.................. 18 2.6 Integrace........................... 19 2.7 Konverze k Bézierově reprezentaci............. 19 3 Bézierovy techniky 21 3.1 Symetrické polynomy.................... 21 3.2 Hlavní věta Bézierovy teorie................ 22 3.3 Zjemnění........................... 23 3.4 Konvergence při zjemňování................ 24 3.5 Generování křivek pomocí zjemňování.......... 24 3.6 Generování křivek pomocí následných diferencí...... 26 3.7 Průniky........................... 26 3.8 Variation diminishing property............... 27 3.9 Symetrický polynom derivace............... 27 3.10 C r napojení křivek..................... 29 3.11 Zvyšování stupně křivek.................. 29 3.12 Konvergence při zvyšování stupně............. 30 3

4 Aproximace křivek - Bézierova kubika 32 4.1 Aproximace kružnice.................... 32 4.2 Aproximace elipsy...................... 33 4.3 Aproximace sinusoidy.................... 33 Literatura 35 4

Název práce: Bézierovy křivky Autor: Lenka Zavrtálková Katedra (ústav): Katedra numerické matematiky Vedoucí bakalářské práce: Doc. RNDr. Karel Najzar, CSc. e-mail vedoucího: knajj@karlin.mff.cuni.cz Abstrakt: V předložené práci studujeme vyjádření křivek pomocí Bézierovy reprezentace, a to s využitím jejich parametrizace. Tato Bézierova teorie vznikla z potřeby počítačové grafiky, kde bylo nutno jednoduchým způsobem umožnit konstrukci křivek a ploch. P. Bézier vyvinul způsob, kdy je křivka určena lomenou čarou s krajními body splývajícími s krajními body křivky, úseky lomené čáry těmito body procházející jsou tečnami křivky v těchto bodech a tvar této lomené čáry zhruba napodobuje průběh křivky. Předložená práce popisuje způsob odvození Bézierovy křivky vycházející z použití Bernsteinových polynomů, uvádí několik algoritmů pro generování Bézierových křivek a na závěr aproximaci tří křivek pomocí Bézierovy kubiky, tj. křivky třetího stupně. Klíčová slova: Bézier, křivky, kubika, polynom Title: Bézier curves Author: Lenka Zavrtálková Department: Department of numerical mathematics Supervisor: Doc. RNDr. Karel Najzar, CSc. Supervisor s e-mail address: knajj@karlin.mff.cuni.cz Abstract: In the present work we study the Bézier representation of curves using their parametrisation.this Bézier theory originated because of the computer design, where simply way to curve contsruction was needed. P.Bézier developed a method in which the curve is definited by its so-called Bézier polygon. The curve and his Bézier polygon are closely related. They have common end points and end tangents. The present work describes the way the Bézier curve is derived by using the Bernstein polynomials, gives some alghorithms for generating the Bézier curves and at the end shows an aproximation of three curves by the Bézier cubic. Keywords: Bézier, curves, cubic, polynomial 5

Kapitola 1 Základní pojmy z geometrie a teorie křivek 1.1 Afinní prostor Afinní prostor A je bodový prostor obsahující vlastní vektorový prostor V. Nadále uvažujme konečně rozměrný prostor nad R, což nám implikuje, že jak body, tak vektory mohou být reprezentovány pomocí prvků R n. Tedy každý prvek x R n reprezentuje bod nebo vektor, v závislosti na kontextu. Navíc, můžeme pracovat pouze s takovouto reprezentací a jednoduše ztotožnit prostory A a V s nějakým podprostorem R n. Mějme dva body p a q, pak vektor směřující z bodu p do bodu q dostaneme jako jejich rozdíl, tedy v = q p Rozdíl mezi body a vektory lze rovněž vyjádřit pomocí rozšíření souřadnic, a to x = [ x e ] představuje { bod vektor pokud e = { 1 0 Výše uvedená reprezentace bodů a vektorů závisí samozřejmě na volbě soustavy souřadnic. Vezměmě libovolný bod p z prostoru A a vektory v 1,..., v n tvořící bázi prostoru V. Pak každý bod q prostoru A lze jednoznačně vyjádřit jako q = p + v 1 x 1 + + v n x n 6

tedy sloupcový vektor x = [x 1 x n ] T Rn vyjadřuje souřadnice bodu q vzhledem k afinnímu systému p; v 1,..., v n. Bod p pak nazveme počátkem soustavy souřadnic a jeho sloupcový souřadnicový vektor je x = o = [0... 0] T Dimenze afinního prostoru A je definována jako dimenze jeho vektorového podprostoru V 1.2 Afinní kombinace Posloupnost bodů p 0,..., p m z prostoru A nazveme afinně nezávislou, pokud posloupnost vektorů p 1 p 0,..., p m p 0 je lineárně nezávislá. Tato definice nezávisí na pořadí bodů p i. Něcht prostor A má dimenzi n. Pak každá nezávislá posloupnost n+1 prvků p 0,..., p n tvoří kostru A a každý bod q A lze jednoznačně napsat jako q = p 0 + (p 1) x 1 +... + (p n p 0 ) x n = p 0 x 0 +... + p n x n (1.1) kde 1 = x 0 +... + x n (1.2) Koeficienty x i nazýváme barycentrické souřadnice bodu q vzhledem ke kostře p 0,..., p n. Všimněme si, že x 0 +... + x n jsou afinní souřadnice bodu q vzhledem k počátku p j a n-tici vektorů p i p j, i j. Speciálně, pokud n = 1, pak bod q = q(x) = p 0 (1 x) + p 1 x (1.3) leží na úsečce spojující body p 0 a p 1. Poměr x : (1 x) nazveme poměrem bodu q vzhledem k bodům p 0 a p 1. Necht a 1,..., a m jsou rozšířené nebo barycentrické souřadnicové sloupce nějakých m bodů z A. Pak jejich vážený součet a = a i α i představuje { bod vektor pokud αi = { 1 0 7

Pokud je tento vážený součet roven jedné, pak a = a i α i se nazývá afinní kombinace. Navíc, v případě, že váhy jsou nezáporná čísla, a nazveme konvexní kombinací a leží v konvexním obalu tvořeném body a i. 1.3 Afinní zobrazení Necht A a B jsou dva afinní prostory, U, V vlastní vektorové podprostory a m, n odpovídající dimenze. Pak zobrazení Φ : A B nazveme afinní, jestliže může být reprezentováno m n maticí A a bodem a z B tak, že y = Φ(x) = a + Ax, kde a představuje obraz počátku A. Lineární zobrazení ϕ : U V dané předpisem v = ϕ(u) = Au nazveme vlastní lineární zobrazení náležící k Φ. Použitím rozšířených souřadnic lze obě zobrazení zapsat pomocí stejné maticové reprezentace [ ] [ ] [ [ ] [ ] [ ] y A a x v A a u = 1 o T 1 1, = 0 o T, 1 0 nebo-li y = Ax, v = Au. Následující dvě vlastnosti jsou pak jednoduchými důsledky maticové reprezentace Afinní zobrazení Φ komutuje s afinními kombinacemi, tj. A dále Φ(a i α i ) = Φ(a i )α i. afinní zobrazení je zcela určeno kostrou dima + 1 nezávislých bodů p 0...p m a jejich obrazů q 0...q m 1.4 Parametrické křivky V této kapitole uvedeme základní pojmy a vlastnosti z diferenciální teorie křivek, které budeme potřebovat dále. Parametrické vyjádření křivky v E 3 : 8

P(t) = (x(t), y(t), z(t)) E 3, kde funkce x(t), y(t), z(t) jsou dostatečně hladké funkce parametru t < a, b >. Je-li derivace Ṗ(t 0 ) nenulový vektor, pak bod P(t 0 ) se nazývá regulárním bodem křivky a tento vektor je tzv. tečný vektor v bodě P(t 0 ). V opačném případě se jedná o singulární bod. Jsou-li všechny body křivky regulární, pak říkáme, že křivka je regulární. Je-li křivka regulární a funkce x(t), y(t), z(t) jsou z prostoru C r <a,b>, pak říkáme, že křivka je třídy C r. Křivka je rektifikovatelná na < a, b >, je-li sup P(t k ) P(t k+1 <, k=1 kde supremum se bere přes všechna dělení {t k } intervalu < a, b >. Hodnota tohoto suprema se nazývá délkou křivky. Rektifikovatelná, po částech regulární křivka třídy C 1 (křivka složená z konečného počtu úseků, které jsou regulární a třídy C 1 ) má délku l : l = b a ẋ 2 (t) + ẏ 2 (t) + ż 2 (t) dt = b a Ṗ(t) dt, kde znamená Euklidovou normu v E 3. Je-li parametrem délka křivky s, s(t) = l(t), pak t P (s) = d ds P(s) = P(t) ṡ(t). Zřejmě ṡ = s(t) = P(t). Je-li Ṗ(t dt 0) 0, pak P (s 0 ) = 1, kde s 0 = s(t 0 ). Vektor t P (s) se nazývá jednotkový tečný (tangenciální) vektor v bodě P(s) a ṡ je velikost tečného vektoru v tomto bodě ke křivce P(s). Parametrická rovnice tečny ke křivce P(t) v bodě P(t 0 ) : R(u) = P(t 0 ) + ut(t 0 ), kde u je parametr tečny znamenající vzdálenost bodu R(u) tečny od bodu dotyku P(t 0 ) s křivkou P(t). Normálová rovina v bodě P(t 0 ) je rovina, která je kolmá k tečně v tomto bodě: (R P(t 0 ), Ṗ(t 0)) Ṗ(t 0) = 0, kde R = (x, y, z). a (, )je skalární součin v prostoru E 3. 9

Oskulační rovina v bodě P(t 0 ) generovaná vektory R P(t 0 ), Ṗ(t 0 ), P(t 0 ): det x x(t 0 ) y y(t 0 ) z z(t 0 ) ẋ(t 0 ) ẏ(t 0 ) ż(t 0 ) ẍ(t 0 ) ÿ(t 0 ) z(t 0 ) = 0, kde R = (x, y, z) je bod roviny. Hlavní normála (hlavní normálový vektor) v bodě P(t 0 ): jednotkový vektor n, který leží na normále. Normála je přímka procházející bodem P(t 0 ), která leží v oskulační rovině a je kolmá na tečný vektor ke křivce P(t) v bodě P(t 0 ). Platí: n = P (s 0 ) P (s 0 ), s 0 = l(t 0 ). Binormála v bodě P(t 0 ): b je jednotkový vektor ležící na přímce procházející bodem P(t 0 ), a která je kolmá k oskulační rovině. Platí b = t n, tzn.: b = Ṗ P Ṗ P, t = Ṗ P, n = P Ṗ 2 Ṗ(Ṗ P) Ṗ P P Rektifikační rovina: rovina určená tečnou a binormálou. Normálová rovina: rovina určená hlavní normálou a binormálou. Frenetovy formule. Pro derivace tečného vektoru t, hlavní normály n a binormály b podle parametru délky křivky s platí: P = t, t = κn, n = κt + τb, b = τn, kde κ je křivost křivky a τ je torze, pro které platí κ = Ṗ P Ṗ 3, Ṗ τ = PP P 2 P 2 (Ṗ P). 2 Křivost a torzi křivky lze spočíst pomocí následujících vzorců: ẋ ẏ ż det ẍ ÿ z A2 + B κ = 2 + C 2 { ẋ 2 + ẏ 2 + ż 2 }, τ = x y z, 3 A 2 + B 2 + C 2 kde ( ) ( ) ( ẏ ż ż ẋ ẋ ẏ A = det, B = det, C = det ÿ z z ẍ ẍ ÿ ) 10

Vektor křivosti K(t) = κ(t)n(t): K(t) = (P (t) P (t)) P (t) P (t) 4. Vektor křivosti K(t) má velikost rovnou křivosti κ(t) a směřuje z daného bodu (který je určen parametrem t) křivky do středu křivosti tzn. ve směru t (t). Střed křivosti je střed oskulační kružnice; její poloměr se nazývá poloměrem křivosti. Oskulační kružnice v daném bodě křivky je kružnice, která nejlépe aproximuje křivku v tomto bodě, tzn. její vektory 1. a 2. derivace jsou v tomto bodě totožné s odpovídajícími vektory křivky. Leží v oskulační rovině a to na konkávní straně křivky. Křivost je rovna převrácené hodnotě poloměru křivosti. Poznamenejme, že křivost existuje v každém bodě křivky třidy C 2 a torze v každém regulárním bodě křivky třídy C 3, který není bodem rektifikačním. Geometrická spojitost a tvarové parametry. Necht jsou dány dvě křivky P 1 (t) a P 2 (t), přičemž t < 0, 1 >. Necht Q P 1 (1) = P 2 (0). Spojitost jednotkového tečného vektoru. Jednotkový tečný vektor křivky složené z těchto dvou křivek (napojených v bodě Q) je spojitý v bodě Q, jestliže P 1(1) P 1(1) = P 2(0) P 2(0), tzn. existuje kladné číslo β 1 tak,že P 1(1) = β 1 P 2(0). Spojitost vektoru křivosti. Lze snadno ověřit, že když existuje nezáporná konstanta β 2 tak, že platí: P 2(0) = β 2 1P 1(1) + β 2 P 1(1), pak vektor křivosti v bodě Q (výše uvedených křivek) bude spojitý, tzn. bude platit: (P 2(0) P 2(0)) P 2(0) = (P 1(1) P 1(1)) P 1(t), P 2(0) 4 P 1(1) 4 přičemž P 1(1) = β 1 P 2(0). Geometrická spojitost. Řekneme, že křivka P(t) složená z úseků P 1 (t), P 2 (t) napojených v bodě (viz výše) má geometrickou spojitost, jestliže jednotkový tečný vektor a vektor křivosti jsou spojité. Pro úplnost si připomeňme definici a vlastnosti vektorového a smíšeného součinu, které se vyskytují ve výše uvedených vzorcích. 11

Vektorový součin dvou vektorů a, b: označení a b -vektor o velikosti a b sin α (α je úhel, který svírají vektory a, b), který je ortogonální k vektorům a, b, přičemž vektory a, b, a b mají kladnou orientaci. Např. necht e 1, e 2, e 3 jsou jednotkové vektory ve směru souřadnicových os Eukleidova prostoru E 3, pak e 1 = e 2 e 3, e 2 = e 3 e 1, e 3 = e 1 e 2. Platí: a b = b a (λa) b = a (λb) = λ(a b) (a + b) c = a c + b c, a (b + c) = a b + a c (a b) c = (a c)b (c b)a Smíšený součin tří vektorů a, b, c: abc = (a b) c. Platí: abc = bca = cab = acb = cab = bac ( a c a d (a b) (c d) = (a c)(b d) (a d)(b c) = det b c b d ). 12

Kapitola 2 Bézierova reprezentace Každý polynomiální křivkový segment může být reprezentován pomocí lomené čáry, tzv. Bézierova polygonu. Křivka a její Bézierův polygon jsou velmi úzce svázány. Koncové body Bézierova polygonu splývají s krajními body křivky, úseky lomené čáry těmito body procházející jsou tečnami křivky v těchto bodech a tvar lomené čáry zhruba napodobuje průběh křivky. Křivka leží v konvexní kombinaci bodů polygonu. 2.1 Bernsteinovy polynomy Bernesteinovy polynomy vychází z binomického rozvoje 1 = (u + (1 u)) n = ( ) n u i (1 u) n i i a Bernsteinův polynom stupně n definujeme předpisem B n i (u) = ( ) n u i (1 u) n i, i = 0,..., n. i Bernsteinovy polynomy mají následující důležité vlastnosti: Jsou lineárně nezávislé Jmenovitě, dělením n b i u i (1 u) n i = 0 členem (1 u) n a dosazením s = u/(1 u) dostaneme n b i s i = 0 což implikuje b 0 =... = b n = 0 Jsou symetrické B n i (u) = B n n i(1 u). 13

Jedinými kořeny jsou 0 a 1 B n i (0) = B n n i(1) = Tvoří rozklad jednotky { 1 0 pro { i = 0 i > 0 Jsou kladné v intervalu (0,1) Splňují rekurzivní formuli Bi n (0) = 1 pro všechna u R. B n i (u) > 0 pro u (0, 1). B n+1 i (u) = ub n i 1(u)+(1 u)b n i (u), kde B n 1 = B n n+1 = 0 a B 0 0 = 1. Tato rekurze výplývá přímo z identity ( ) n + 1 = i ( ) n + i 1 ( ) n. i Poznámka : Výpočet hodnot Bernsteinových polynomů až do stupně n může být znázorněno trojúhelníkovým schématem 1 = B 0 0 B 1 0 B 2 0 B n 0 B 1 1 B 2 1 B n 1 B 2 2 B n 2.... B n n 2.2 Bézierova reprezentace klíč u 1 u Z lineární algebry plyne, že n + 1 (lineárně nezávislých) Bernsteinových polynomů Bi n tvoří bázi pro všechny polynomy stupně n. Tedy každá polynomiální křivka b(u) stupně n má jednoznačně určenou Bézierovu reprezentaci stupně n b(u) = c i Bi n (u). 14

Každá afinní parametrická transformace u = a(1 t) + bt, a b, nemění stupeň křivky b. Z tohoto důvodu i b(u(t)) má Bézierovu reprezentaci n-tého stupně, b(u(t)) = b i Bi n (t). Což můžeme přepsat do tvaru b(u(t)) = (t n, t n 1,..., 1)M n (b 0,..., b n ) T, kde ( )( ) n n i M n = {m ij } n i,j=0, m ij = ( 1) n i j, n i j 0 i + j n, jinak m ij = 0. Tedy M n převádí bázi {1,..., t n } v prostoru polynomů stupně n na bázi složenou z Bernsteinových polynomů. Koeficienty b i jsou z prostoru R d a nazýváme je řídící body křivky nebo Bézierovy body. Jsou to vrcholy Bézierova polygonu křivky b u nad intervalem [a, b]. Parametr t nazveme lokální a u globální parametr křivky b. Vlastnosti Bernsteinových polynomů uvedené v odstavci 2.1 se přenáší na Bézierovu reprezentaci křivek: Symetrie Bernsteinových polynomů implikuje b(u) = b i Bi n (t) = b n i Bi n (s), kde u = a(1 t)+bt = b(1 s)+as. Tyto dvě sumy definují Bézierovu reprezentaci b nad intervalem [a, b] a [b, a]. Proto, pokud použijeme orientovaných intervalů [a, b] a [b, a], můžeme rozlišit dvě různé parametrické orientace polynomiální křivky. Pro koncové body segmentu křivky b[a, b] máme b(a) = b 0 a b(b) = b n Z vlastnosti, že součet všech Bernsteinových polynomů je jedna, dostaneme důležitou vlastnost Bézierovy křivky b: 15

každý bod b(u) je afinní kombinací Bézierových bodů. Jako důsledek pak Bézierova reprezentace je afinně invariantní, tj. mějme dané libovolné afinní zobrazení Φ, pak obraz křivky Φ(b) má Bézierovy body Φ(b i ) nad intervalem [a, b]. Protože Bernsteinovy polynomy jsou nezáporné na [0, 1],platí pro každé u [a, b] je b(u) je konvexní kombinace Bézierových bodů b i. Tedy úsek křivky b[a, b] leží v konvexním obalu svých Bézierových bodů. 2.3 Algoritmus de Casteljau Křivku b(u) = b 0 i Bi n (t), kde u = a(1 t) + bt, lze jednoduše vyjádřit pomocí de Casteljau algoritmu. Opakovaným užitím rekurentních vztahů z definice Bernsteinových polynomů dostaneme kde n 1 b(u) = b 0 i Bi n 0 (t) = b 1 i Bi n 1 (t) =... = b n i Bi 0 (t) = b n 0, b k+1 i = (1 t)b k i + tb k i+1. Body b k i de Casteljau algoritmu lze zapsat do trojúhelníkového schématu, kde každý prvek lze spočítat pomocí klíče uvedeného vpravo: b 0 0 b 0 1 b 1 0 b 0 2 b 1 1 b 2 0.... klíč 1 t t b 0 n b 1 n 1 b 2 n 2 b n 0 Poznámka: Pokud t leží v intervalu [0, 1], pak algoritmus de Casteljau sestává pouze z konvexních kombinací, což objasňuje numerickou stabilitu tohoto algoritmu. Poznámka: Hornerovo schéma je velmi efektivní metodou jak spočítat 16

hodnotu polynomu. Lze jej také užít pro křivku b(t) = b i Bi n (t) v Bézierově formě. Po přepsání b(t) do tvaru ( n ) b(t) = (1 t) n ( ) ) n t i b i(, i 1 t nejprve vyčíslíme sumu v závorce pomocí Hornerova schématu pro hodnotu t/(1 t) a poté přenásobíme výsledek výrazem (1 t) n. Tato metoda ovšem selhává, pokud t je blízko k 1. V tomto případě můžeme užít vztahu ( n ) b(t) = t n (1 ) n t i ) b n i(, i t 2.4 Bézierovy křivky a derivace Derivaci Bernsteinova polynomu stupně n lze snadno vypočítat. Z definice Bernsteinova polynomu dostaneme kde B n 1 1 d dt Bn i (t) = n(b n 1 i 1 (t) B n 1 i (t)) pro i = 0,..., n, = B n 1 n = 0. Tedy, pro danou křivku b(u) = b i Bi n (t), dostaneme pro její derivaci b(u) d du b(u) = n n 1 b a t = u a b a b i Bi n 1 (t), kde b i = b i+1 b i. Pokud se na b(u) díváme jako na bod, pak b(u) je vektor. Bod dostaneme, pokud b(u) umístíme do nějakého jiného bodu. Specielně, o + b (u) nazýváme (první) hodograf b. Opakovaným aplikováním derivační formule dostaneme r-tou derivaci b(u), n r b r n! (u) = r b (n r)!(b a) r i Bi n r (t), kde r b i = r 1 b i+1 r 1 b i označuje r-tou následnou diferenci b i. Stejně jako výše obdržíme druhý a také další hodografy. 17

Použitím derivační formule a koncové interpolační vlastnosti Bézierových křivek dostaneme výsledek, který byl základem pro Bézierův rozvoj. Derivace b v bodě t = 0 (nebo t = 1) až do řádu r závisí pouze na prvních(nebo posledních) r+1 Bézierových bodech a naopak. Geometricky to znamená, že,obecně, tečny b v bodech t = 0 a t = 1 jsou dány body b 0, b 1 a b n 1, b n a oskulační roviny jsou dány body b 0, b 1, b 2 a b n 2, b n 1, b n. Poznámka: Podíváme-li se na Bézierův polygon křivky b(u) = n b i B n i (t), kde u = (1 t)a + tb, jako na částečnou lineární funkci p(u) nad intervalem [a, b] dostaneme: derivace p(u) Bézierova polygonu sestává z Bézierových bodů křivky b (u). 2.5 Singulární parametrizace Uvažujme polynomiální křivku a její derivaci b(t) = b i Bi n (t) n 1 ḃ(t) = n b i Bi n 1 (t), kde tečka značí derivaci podle parametru t. Pokud b 0 = o, pak ḃ(t) je nula v bodě t = 0. Avšak se singulární reparametrizací t = s dostaneme d ds b(t(0)) = n b 1. Pokud b 0 = o a b 1 o, pak křivka b(t) má v bodě t = 0 tečnu směřující do bodu b 2. Poznámka: Pokud b 0 = b 1 = o a b 2 o, pak křivka b(t) má v bodě t = 0 tečnu směřující do bodu b 3 atd. 18

2.6 Integrace Integrál polynomiální křivky v Bézierově reprezentaci b(u) = b i Bi n (t), t = u a b a má Bézierovu reprezentaci kde c(u) = b(u)du = n+1 c i Bi n+1 (t), c i = c i 1 + b a n + 1 b i 1 = c 0 + b a n + 1 (b 0 +... + b i 1 ), i = n + 1,..., 1, a c 0 je libovolná integrační konstanta. Jako důsledek integrační formule a koncové interpolační vlastnosti Bézierovy reprezentace dostaneme b b u du = b a a n + 1 (b 0 +... + b n ) a specielně, nezávisle na i, 1 0 B n i (t) = 1 n + 1. 2.7 Konverze k Bézierově reprezentaci Některé starší CAD datové formáty reprezentují křivky pomocí jednočlenů. Proto konverze dat mezi odlišnými CAD systémy je aplikací, kdy je třeba nutně přeměnit jednočlenou reprezentaci do Bézierovy a naopak. Necht ) n b(t) = a i( t i i je křivka v monomické formě s binomickými faktory, stejně jako v Bézierově reprezentaci. Protože ( ) n i ( )( ) n i t i (1 t + t) n i n n i = t i+k (1 t) n i k k=0 i n i + k ( ) n i i + k = Bi+k n k=0 i ( ) j = Bj n, j=0 i 19

dostaneme vzorec pro přeměnu b(t) = b j Bj n (t), j=0 kde b j = j=0 ( ) j a i i a ( ) j i = 0 pro j < i. Poznámka: Pokud a 2 = = a n = o a a 1 o, pak b(t) je lineárně reprezentována nad [0, 1] pomocí Bézierových bodů b j = a 0 + ja 1 Poznámka: Opačně, pokud n + 1 Bézierových bodů b i leží ekvidistantně na přímce, pak b(t) je lineární funkce parametru t, lze ji napsat ve tvaru b(t) = (1 t)b 0 + tb n. Tato vlastnost je známa jako lineární přesnost Bézierovy reprezentace. Necht je dána po částech polynomiální křivka v Bézierově reprezentaci b(u) = b i Bi n ( ) u a, b a pak můžeme dostat její monomickou formu jednoduše pomocí Taylorova rozvoje b(u) = b (i) (u a)i (a) i! = ( ) n i (u a) i b 0 i (b a). i Protože i b 0 = ( i i k=0 k) ( 1) i k b k, můžeme tento výraz přepsat do tvaru )( ) i b(u) = k=0( 1) i k( n i b k t i. i k 20

Kapitola 3 Bézierovy techniky 3.1 Symetrické polynomy Každá polynomiální křivka b(u) stupně n může být jednoznačně spojena s n-proměnným symetrickým polynomem b[u 1...u n ] majícím následující tři vlastnosti: b[u 1...u n ] odpovídá b(u) na své diagonále, což znamená, že b[u...u] = b(u). b[u 1...u n ] je symetrický ve svých proměnných, což znamená, že pro každou permutaci (v 1,...v n ) posloupnosti (v 1,...v n ) b[v 1...v n ] = b[u 1...u n ]. b[u 1...u n ] je afinní v každé proměnné, což znamená, že b[(αu + (1 α)v)u 2...u n ] = αb[uu 2...u n ] + (1 α)b[vu 2...u n ]. Symetrický polynom b[u 1...u n ] je často nazýván také polární formou b(u). Abychom dokázali, že takový symetrický polynom existuje pro všechny polynomy, stačí uvažovat polynomy bázové a odvodit explicitní reprezentaci pro jejich symetrickou formu. Každá lineární kombinace b(u) = c i C i (u) 21

polynomů C i (u) stupně n s polárními formami C i [u 1...u n ] má polární formu b[u 1...u n ] = c i C i [u 1...u n ], která zřejmě splňuje všechny tři požadované vlastnosti. Všimněme si, že diagonála b[u...u] může být stupně menšího než n, ačkoliv b[u 1...u n ] závisí na n proměnných. V případě, že C i jsou vážené jednočleny A n i = ( ) n i u i, i = 0,..., n, dostaneme elementární symetrické polynomy A n i [u 1...u n ] = 1j 1 < <j i n u j1...u jn, které zřejmě splňují výše požadované vlastnosti. Tato suma obsahuje ( ) n i součinů i proměnných. V případě, že C i jsou Bernsteinovy polynomy ( ) n Bi n (u) = u i (1 u) n i, i dostaneme B n i [u 1...u n ] = u j1...u jn, j 1 < < j i k 1 < < k n i kde (j 1,..., j i, k 1,..., k n 1 ) je permutace (1,..., n). Poznámka: Symetrické polynomy B n i [u 1...u n ] splňují rekurzi B n+1 i [u 1...u n ] = u 0 B n i 1[u 1...u n ] + (1 u)b n i [u 1...u n ]. 3.2 Hlavní věta Bézierovy teorie Jednoznačnost symetrických polynomů a jejich vztahy k Bézierově reprezentaci jsou dány následující hlavní větou. Věta 1: Pro všechny polynomiální křivky b(u) stupně n existuje jednoznačně určený symetrický n-proměnný a n-afinní polynom b[u 1...u n ] s diagonálou b[u...u] = b(u). Navíc, body b i = b[a n i... a b.. i. b], i = 0,..., n, jsou Bézierovy body křivky b(u) nad [a, b]. 22

Důkaz: V odstavci 3.1 jsme ukázali, že polární forma b[u 1...u n ] existuje pro b(u). Tedy můžeme uvažovat body b k+1 i = b[a.. i. a u i 1... u k b.. i. b], i + j + k = n. Protože b n 0 = b[u 1...u n ] je symetrická a multiafinní, může být spočtena z bodů b 0 i pomocí následující rekurze b k+1 i = b k i (1 t k+1 ) + b k i+1t k+1, kde t k+1 = u k a b a. Navíc, pokud všechna u k jsou rovna u, pak rekurzivní formule se redukuje na algoritmus de Casteljau pro v7po4et b(u). Tudíž, protože Bézierova reprezentace je jednoznačná, body b i jsou Bézierovy body křivky b(u) nad [a, b]. Proto každé dva symetrické polynomy se stejnou diagonálou b(u) se shodují pro všechny argumenty [a n i... a b.. i. b] a (vzhledem k uvedené rekurzi) jsou také totožné pro všechny argumenty [u 1 u n ]. Z toho plyne, že b(u) má jednoznačně určenou n-afinní polární formu. 3.3 Zjemnění Rekurzivní formule uvedená v předcházející části odhaluje velmi důležitou doplňující vlastnost de Casteljau algoritmu. V matici tohoto de Casteljau algoritmu jsou použity následující body b 0 0 b 0 1 b 1 0 b 0 2. b 1 1 b 2 0... b 0 n b 1 n 1 b 2 n 2 b n 0 = b(c) potřebné k výpočtu bodu b(c). Bézierovy body b i 0 = b[a n i... a c.. i. c] a b n i j = b[c n i... c b.. i. b] části křivky nad [a, c], [c, b] nalezneme v horní diagonále a spodním řádku. Výpočet Bézierových bodů přes dva intervaly [a, c], [c, b] se nazývá zjemnění. Body b k i = b[a n i k... a. k.. cb.. i. b] 23

jsou opět charakterizovány svými argumenty. Všimněne si, že vše platí i pokud přehodíme b a c. Opakovaným zjemňováním b(u) dostaneme Bézierův polygon b(u) přes libovolný počet sousedících intervalů [a 0, a 1 ], [a 1, a 2 ],..., [a k 1, a k ]. Společně tyto polynomy tvoří složený Bézierův polygon křivky b nad [a 0, a 1,...a k ]. Obecně, tento složený polygon má kn + 1 různých vrcholů. 3.4 Konvergence při zjemňování Bézierův polygon malého kousku křivky je jeho docela dobrou aproximací. Abychom to upřesnili, necht b 0,..., b n jsou Bézierovy body nějaké křivky b(u) nad podintervalem [c, c + nh] nějakého pevně zvoleného intervalu [a, b]. Navíc, necht c i = c + ih, i = 0,..., n. Pak existuje konstanta M nezávislá na c taková, že max i b(c i ) b i Mh 2 Důkaz: Rozšiřme symetrický polynom b[u 1...u n ] na [c i...c i ] a dostaneme b i = b[c n i... c c + nh.. i. c + nh] n i = b[c i...c i ] j 1 ih n i b[c i...c i ] + u j j 1 (n i)h b[c i...c i ] + O(h 2 ), u j což dokazuje tvrzení, nebot všechny parciální derivace jsou stejné. Poznámka: Pro maximovou normu byla spočtena nejmenší možná konstanta m, pro kterou výše uvedený výraz platí pro všechny křivky, a to max,...,n 2 2 b i n/2 n/2 /2n. Poznámka: Kvadratická konvergence je nejlepší, jak jde vidět, pro parabolu p(u) = u 2, jejíž prostřední Bézierův bod v intervalu [0, 2h] je nula, zatímco p(u) = h 2. 3.5 Generování křivek pomocí zjemňování Zjemňování umožňuje velmi rychlou metodu pro generování aproximací Bézierových křivek. Z odstavce 3.4 vyplývá, že Bézierův polygon nad [0, 1 2, 2,..., 1] k 2k 24

nějaké křivky b(t) = b i B n i (t) konverguje k segmentu křivky se stupněm 1/4 k. Toto vybízí k následujícímu algoritmu Plot Bézier (b 0,..., b n ; k) pokud k = 0 pak plot polygon b 0,...b n jinak spočítej složený Bézierův polygon a 0,..., a 2n bi Bi n (t) nad [0, 0.5, 1] Plot Bézier (a 0,..., a n ; k 1) Plot Bézier (a n,..., a 2n ; k 1) Co se týče počtu iterací, můžeme použít následující kritérium pro ukončení. Například chceme skončit, pokud vstupní Bézierův polygon je blízký přímce. Jednoduché měření přímosti křivky, tj. jak je tato křivka blízká přímce, je založeno na druhé následné diferenci. Tedy, můžeme změnit první řádek algoritmu do tvaru pokud k = 0 nebo max { 2 b i i 0,..., n 2 } < ε. Namísto vykreslování Bézierova polygonu můžeme jednoduše nakreslit úsečku b 0 n pokud je kritérium splněno. Hranice této odchylky je dána následující větou: Bud l(t) = n 0 (1 t) + b n t lineární interpolace b(t) Pak sup 0 t 1 b(t) l(t) 1 8 sup 0 t 1 b(t) 1 n(n 1) 8 max,...,n 2 2 b i, kde značí supremovou nebo Eukleidovu normu. Poznámka: Pokud b(u) má Bézierovy body b i nad [a, b] a Bézierovy body c i nad podintervalem [c, c + h], pak rozdíly 2 c i jsou ohraničeny h 2 max 2 c i. Tedy stupeň aproximace lineární interpolace je kvadratický. Navíc, stupeň aproximace je obecně pouze kvadratický. Proto, vzhledem k předcházející poznámce, složený Bézierův polygon nad [0,,..., 1] 1 2 m je, asymptoticky, tak dobrou aproximací jako sečnový polygon s vrcholy ( ) i b, i = 0, 1,..., n2 m. n2 m 25

3.6 Generování křivek pomocí následných diferencí Jiný rychlý kreslící algoritmus pro křivku b(u) je založen na dopředných difernecích. Necht p = b(a + ih), i = 0,..., m, jsou body křivky b(u) s ekvidistantními parametrickými hodnotami. Pokud b(u) je stupně n, pak n+1 p i = 0 a n p i = konst. pro všechna i. Toho lze využít pro výpočet bodů p i, i = 1,..., m z bodů p 0,..., p n. Nejprve spočteme konstantu n p i opakovanými rozdíly a poté body p i, i > n pozpátku, opakovaným přičítáním. Výpočet lze znázornit následujícím schematem: p 0 p 1 1 p 0.... p n 1 p n 1 n p 0 klíč1 + p n+1 1 p n n p 1. p m 1 p m 1 n p m n. klíč2 + + Poznámka 5: Výpočet ukazuje, že kromě počítání bodů p 0,..., p n v trojúhel- níkovém schematu je potřeba vyjádřit n vektorů navíc pro každý bod křivky. Z toho plyne, že generování křivek pomocí zjemňování je skoro dvakrát rychlejší než dopředná diference a také více numericky stabilní. 3.7 Průniky Zjemňování je užitečné také pro výpočet průniku dvou rovinných Bézierových křivek.uvažujme b(s) = b i B m i (s), s [0, 1], a c(t) = c i B m i (s), t [0, 1]. Idea spočívá v tom, že porovnáme konvexní obaly obou Bézierových polygonů. Pokud jsou disjunktní, pak křivky nemají společný průnik. Pokud 26

se překrývají, křivky mohou, ale nemusí, mít průnik. V dalším kroku uděláme zjemnění pro t = 1/2 a porovnáme konvexní obaly b[0, 1/2] a b[1/2, 1] s c[0, 1/2] a b[1/2, 1]. Tento proces opakujeme pro každý pár segmentů křivky kde se konvexní obaly Béízierových polygonů překrývají. Pokud eventuelně jsou konvexní obaly malé a plytké, křivky lze aproximovat rovnými přímkovými úseky, jejichž průnik lze jednoduše zjistit. 3.8 Variation diminishing property Zjemňování není jen praktickým, nýbrž i teoretickým nástrojem. V následujícím pomocí ní odvodíme vlastnost variation diminishing property, která spočívá na důležité vlastnosti, že křivka se nemůže více vlnit než její Bézierův polygon. Přesněji: Věta 2: Křivka b(t), t [0, 1] je prot ata libovolnou nadrovinou H nejvýše tolikrát jako její Bézierův polygon. K důkazu se nejprve podívejme na algoritmus de Casteljau jako na opakovaný proces usekávání rohů pro všechna t [0, 1]. Pokud přímkový úsek ac protne H, pak i polygon abc protne H. Naopak to ovšem obecně neplatí. Z toho plyne, že Bézierův polygon nad zjemněním [0, t 1,..., t k, 1] intervalu [0, 1] má nejvýše tolik průniků s H jako Bézierův polygon. Specielně, pokud t i jsou vybrána tak, že b(t) 1,..., b(t k ) jsou průniky b s H, pak Bézierův polygon nad [0, 1] má alespoň k průniků s H. Poznámka: Pokud křivka nebo polygon z R d protne (nebo se dotkne) každou nadrovinu nejméně dvěma body nebo leží v této rovině, pak tuto křivku nazveme konvexní. Jako důsledek variation diminishing property dostaneme, že každá křivka s konvexním Bézierovým polygonem je sama konvexní. Poznámka: Graf polynomu b(t) = b i B n i (t), t [0, 1], je konvexní právě když b(t) 0 nebo b(t) 0. Jeho Bézierův polygon je konvexní právě když všechny 2 b i 0 nebo 2 b i 0. 3.9 Symetrický polynom derivace Derivaci polynomiální křivky b(u) lze zapsat pomocí její polární formy b[u 1,..., u n ]. Z odstavce 2.6 jednoduchým diferencováním polární formy 27

plyne rovnost a také b (u) = n (b[b u... u] b[a u... u]), b a b (u) = n(b[1 u... u] b[0 u... u]). Podíváme-li se na tři charakteristické vlastnosti polární formy, zjistíme, že multiafinní symetrický polynom b (u) je dán pomocí b [u 2... u n ] = n(b[1 u 2... u] b[0 u... u n ]). Symetrický polynom b[u 1,..., u n ] počáteční křivky b(u) reprezentuje afinní zobrazení, pokud u 2,..., u n jsou pevné. Z čehož vyplývá že, b[δu 2... u n ] = b[δ u 2... u] b[a u... u n ]). reprezentuje vlastní lineární zobrazení, kde δ = b a. Při použití ε = 1 0 lze derivaci přepsat do tvaru b (u) = nb[ε u 2... u]. Dalším diferencováním dostaneme polární formu r-té derivace b(u) kde b (r) [u r+1,..., u n ] = n! (n r)! b[ε r... ε u r+1... u n ], b[ε. r.. ε u r+1... u n ] = b[ε r 1... ε u r+1... u n ] b[ε r 1... ε0 u r+1... u n ]. Poznámka: Protože b[u 1,..., u n ] je afinní v každé proměnné, první parciální derivace, např., je dána u 1 b[u 1,..., u n ] = b[1 u 2,..., u n ] b[0 u 2,..., u n ] Tedy z toho dále dostaneme r u 1... u r b[u 1,..., u n ] = = b[ε1 u 2,..., u n ] = 1 n b [u 2,..., u n ]. 28 (n r)! b (r) [u r+1,..., u n ]. n!

3.10 C r napojení křivek Podrozdělování také poskytuje vhodný nástroj pro popsání jistých diferencovatelných podmínek dvou polynomiálních křivek b(u) a c(u) daných jejich Bézierovými polygony b 0,..., b n nad [a, b] a c 0,..., c n nad [b, c]. Z odstavce 2.4 plyne, že derivace až do stupně r v u = b ovlivňují a jsou ovlivňovány Bézierovými body b n r,..., b n a c 0,..., c r. Toto vede k Starkově větě: Věta 3: Derivace b a c až do řádu r se shodují v u = b, právě když c 0,..., c r je prvních r + 1 Bézierových bodů křivky b nad [b, c], což znamená b[b n i b c i c] = c i, pro i = 0..., r. Použitím Věty 1. v oddělení 3.2 lze Starkovu větu přepsat následujícím způsobem: Derivace b a c až do řádu r se shodují v u = b právě když oba polynomy b[b n r b u r u] a c[b n r b u r u] jsou si rovny. Nad intervalem [a, b, c] má polynom b[b n r b u r ] složený Bézierův polygon b n r,..., b n, c 1,..., c r. Body c i, i r lze spočítat z bodů b n i pomocí algoritmu de Casteljau. Poznámka: Jelikož dva polynomy jsou si rovny, právě když jejich polární formy jsou si rovny, vidíme, že b(u) a c(u) mají identické derivace až do řádu r v u = t, právě když jejich polární formy splňují b[b n r b u 1... u r ] = c[b n r b u 1... u r ] pro libovolné hodnoty proměnných u 1,..., u n. 3.11 Zvyšování stupně křivek Pro každou křivku stupně n a každé m n máme Bézierovu reprezentaci stupně m. Adaptace na vyšší stupeň reprezentace se používá při jistém konstruování ploch a je občas nezbytná pro výměnu dat mezi jednotlivými CAD systémy. Této přeměně říkáme zvyšování stupně. Mějme Bézierovu reprezentaci stupně n b(u) = b i B n i (t) 29

nějaké křivky b(u). Ukážeme jak zvýšit stupeň o jedničku, tedy napíšeme křivku b(u) pro hodnoty Bernsteinových polynomů Bi n+1 (t). Opět použijeme symetrický polynom b[u 1,..., u n ]. Označíme chybějící výraz v posloupnosti hvězdičkou a definujeme c[u 0... u n ] = 1 n + 1 b[u 1... u i... u n ]. Snadno zjistíme, že tento polynom (n + 1) proměnných je symetrický a multiafinní s diagonálou b(u). Z čehož plyne, že c[u 0... u n ] je (n + 1)- proměnná polární forma b(u). Tedy, použitím Věty 1 v odstavci 3.2 a postupným počítáním dostaneme, že c i = c[a n+1 i a bi b] = i n+1 i b[a a bi 1 b] + n + 1 i n + 1 n + 1 = i n + 1 b i 1 + n + 1 i n + 1 b i b[a n i a bi b] jsou Bézierovy body křivky b(u) nad [a, b] v její reprezentaci stupně n+1. Poznámka: Aproximace polynomu jistého stupně m polynomem stupně n < m se nazývá snižování stupně. Nevýhodou Bézierových křivek je jejich globální povaha. Změní-li se nějaký vrchol Bézierova polygonu, který určuje Bézierovu křivku, změní se průběh celé křivky. Tato vlastnost vedla k vyvinutí dalších křivek, např. B - spline křivek 3.12 Konvergence při zvyšování stupně Opakováním procesu zvyšování stupně křivky obdržíme reprezentaci vyššího stupně m b(t) = d k Bk m (t), m > n, k=0 se Zhouovým jednoduchým vyjádřením koeficientů d k d k = b i β ik, kde ( )( ) ( ) n m n m β ik, = / i k i k 30

je tzv. polyhypergeometrická distribuce známá z teorie pravděpodobnosti. Odvození plyne snadno: b(t) = = = b i Bi n (t)(1 t + t) m n (3.1) ( )( ) m n n m n b i t i+j (1 t) m i j (3.2) j=0 i j ( m n ) b i β ik, Bk m (t), kde k = i + j (3.3) k=0 Podobně jako konvergence vyplývající z opakoveného zjemňování, Bézierův polygon stupně n reprezentující b(t) konverguje k b[0, 1] pro m rostucí do nekonečna. Přepsáním β ik, dostaneme ( ) n i 1 n 1 k α m k + i α β ik = (3.4) i a=0 m α α=1 m α ( ) n = (k/m) i (1 k/m) n i + O(1/m) (3.5) i = Bi n (k/m) + O(1/m). (3.6) Substituce 3.6 do rovnice pro d k dává max d k b(k/m) = O(1/m). k=0,...,m 31

Kapitola 4 Aproximace křivek - Bézierova kubika Nejčastěji se v počítačové geometrii využívá pro konstruování křivek a ploch parametrických kubik. Vektorové polynomy vyššího než třetího stupně mohou sice popisovat ještě složitější křivky, tyto funkce mají ale nevýhody, pro které se používají jen výjimečně. Mají velký počet koeficientů, jejichž geometrický význam je obtížné charakterizovat, mohou mít nevítané vlnění a výpočtový čas se prodlužuje. V této kapitolce popíšeme aproximaci kružnice, elipsy a sinusoidy pomocí Bézierovy kubiky 3 b(t) = b i Bi 3 (t), funkce B 3 i jsou kubické funkce (Bernsteinovy polynomu stupně 3) B 3 0(t) = (1 t) 3, B 3 1(t) = 3t(1 t) 2, B 3 2(t) = 3t 2 (1 t), B 3 3(t) = t 3. 4.1 Aproximace kružnice Čtvrtkružnici mezi body A, C nahradíme obloukem kubiky. Požadujeme, aby pro hodnoty parametru 0,1/2,1 procházela body b 0 = A, B, b 3 = C a aby v bodech b 0 a b 3 měla tečny rovnoběžné se souřadnicovými osami. Je tedy b 0 = [1, 0], b 1 = [1, d 1 ], b 2 = [d 2, 1], b 3 = [0, 1], kde d 1, d 2 jsou neznámé, které určíme z podmínky na bod B. Dosazením výše dostaneme parametrické rovnice náhradní kubiky x(t) = (1 t) 3 + 3t(1 t) 2 + 3t 2 (1 t)d 1 32

y(t) = 3t(1 t) 2 d 2 + 3t 2 (1 t) + t 3. Z podmínky, že pro t = 0, 5 kubika prochází bodem B = (cos 45, sin 45 ), dostaneme d 1 = d 2. = 0, 5522848. Vzdálenost mezi kružnicí a bodem náhradní kubiky, měřená na přímce procházející počátkem, není větší než 3.10 4. 4.2 Aproximace elipsy Čtvrtelipsu mezi vrcholy A, C s délkami poloos a, b nahradíme parametrickou kubikou. Budeme požadovat, aby parametru t = 0, 5 byl přiřazen bod E elipsy, určený trojúhelníkovou konstrukcí, ostatní podmínky jsou analogické předchozím. Je tedy b 0 = A = [a, 0], b 1 = [a, d 1 ], b 2 = [d 2, b], b 3 = [0, b], kde d 1, d 2 jsou neznámé, které určíme z podmínky na bod E. Dosazením výše dostaneme parametrické rovnice náhradní kubiky x(t) = a (1 t) 3 + a 3t(1 t) 2 + 3t 2 (1 t)d 1 y(t) = 3t(1 t) 2 d 2 + b 3t 2 (1 t) + b t 3. Z podmínky, že pro t = 0, 5 kubika prochází bodem E = (a cos 45, b sin 45 ), dostaneme. = 0, 5522848 a d 1 d 2. = 0, 5522848 b. 4.3 Aproximace sinusoidy Parametrická kubika je algebraická křivka nejnižšího stupně mající inflexní bod. Tuto vlastnost využijeme při konstruování kubiky aproximující oblouk sinusoidy mezi inflexním bodem A a vrcholem B. Interpolační kubika bude určena inflexním bodem b 0 = A, tečnou b 0 b 1 mající směrnici 1, bodem 3 = B a tečnou b 2 b 3 s tečnou rovnoběžnou s osou x.je tedy b 0 = [0, 0], b 1 = [d 1, d 1 ], b 2 = [d 2, 1], b 3 = [ π 2, 1], 33

kde d 1, d 2 jsou neznámé, které určíme z podmínky inflexe. Dosazením do výše uvedeného tvaru Bézierovy kubiky dostaneme parametrické rovnice náhradní kubiky x(t) = π 2 3t(1 t)2 + d 0 3t 2 (1 t) + d 1 t 3 y(t) = 3t(1 t) 2 + d 1 3t 2 (1 t). Z podmínky inflexe v bodě A: Protože b (0) = b 0 B 1 (0) + b 1 B 2 (0) + b 2 B 2 (0) + b 3 B 3 (0) = o. B 0 (0) = 6, B 1 (0) = 12, B 2 (0) = 6, B 3 (0) = 0, obdržíme dvě rovnice pro neznámé d 1, d 2 : 0 = 12d 1 + 6d 2 0 = 12d 1 + 6 s řešením d 1 = 1 2, d 2 = 1. 34

Literatura [1] Boehm W.,Paluszny M., Prautzsch H.: Bézier and B-Spline Techniques, Springer, Reading, 2002. [2] Drs L.: Plochy ve výpočetní technice, SNTL, Praha, 1984. [3] Najzar K.: Spline funkce a křivky, Praha, 2006. 35