Bézierova kubika – applet

V tomto appletu je možné si vyzkoušet, jak vzniká Bézierova křivka třetího stupně, tj. Bézierova kubika. Můžeme pozorovat výhody tzv. parametrického vyjádření křivky pomocí dvou nezávislých průběhů funkcí x(t) a y(t). Je možné zadávat a měnit souřadnice bodů a sledovat tak změny průběhu křivky. Rovněž je možné zobrazit Bernsteinovy polynomy a zkoumat jejich vztah s Bézierovými křivkami.

Ovládání appletu

Do grafu, který je umístěn vpravo nahoře, přidáváme 4 řídící body pro Bézierovu křivku postupným klikáním kdekoli na ploše grafu. Po určení čtvrtého bodu se vykreslí jim příslušná Bézierova kubika. Ostatní dva grafy slouží k parametrickému rozložení křivky na průběh x(t) a y(t) v „čase“ t. Průběh x(t) je oproti běžnému zvyku otočen.

Zaškrtnutím „zapnout bod na křivce“ zobrazíme bod pro aktuální t ve všech třech grafech. Táhnutím jezdce hodnotu t měníme a můžeme pozorovat, jak je výsledný průběh Q(t) složen z průběhů jednotlivých souřadnic.

Můžeme si také zobrazit jednotlivé (dva krát čtyři) Bernsteinovy polynomy, jejichž součtem dostáváme funkční hodnoty průběhů x(t) a y(t). Jsou znázorněny modrými průběhy pod funkcemi.

Dalšími intuitivními funkcemi appletu jsou změna polohy řídících bodů a tlačítka „kreslit znovu“ a „vypnout řídící body“. Při změně poloh bodů volíme čísla v mezích os, jinak obdržíme chybovou zprávu. Totéž se stane při pokusu vložit jiné znaky než číslice. Tlačítko „vypnout řídící body“ skryje řídící polygon.

Trocha teorie

Mezi nejznámější aproximační křivky v počítačové grafice patří právě Bézierovy křivky. Teoretický základ těchto křivek vytvořil na přelomu 50. a 60. let P. E. Bézier, když vyvíjel programový nástroj UNISURF pro návrh křivek a ploch u francouzské firmy Renault. Jejich častým využitím je např. definice počítačových fontů.

Pro Bézierovu křivku n-tého stupně definujeme n + 1 řídících bodů Pk. Bézierovy křivky jsou vystavěny na tzv. Bernsteinových polynomech, kde Bézierovu křivku definujeme takto:

Definice Bézierovy křivky.

kde Pk jsou řídící body a Bk,n(t) jsou Bernsteinovy polynomy n-tého stupně definované dle vztahu:

Výpočet Bernsteinových polynomů.

kde t leží v intervalu [0,1] a k = 0,1,...,n.

Pro vykreslení Bézierovy kubiky můžeme využít tří způsobů: výpočet přes maticový zápis pro různé hodnoty t, pomocí algoritmu de Casteljau s konstantním krokem k anebo využití dělení křivky pomocí algoritmu de Casteljau. První způsob je popsán následující rovnicí:

Způsob výpočtu Bézierovy křivky.

Druhým a třetím způsobem se budeme zabývat u appletu nazvaného Algoritmus de Casteljau.


(c) 2010, Jakub Malina, Pavel Rajmic, Ústav telekomunikací, FEKT, VUT v Brně