Bézierova křivka

aproximační křivka generovaná Bernsteinovými polynomy

Bézierova křivka, nesprávným pravopisem Beziérova křivka, pojmenovaná po francouzském inženýru Pierru Bézierovi, je jednou z mnoha parametrických křivek. Umožňuje interaktivně vytvářet křivku a modifikovat její tvar. Pomocí Bézierovy křivky lze také reprezentovat i interpolační křivky (existují například algoritmy na převod mezi interpolačními spline kubikami a B-spline kubikami resp. Bézier kubikami).

Příklad užití Bézierovy křivky

Racionální Bézierova křivka

editovat
 
Příklad užití racionální Bézierovy křivky
 
Vliv váhy na tvar racionální Bézierovy křivky.

Jedná se o zobecnění Bézierových křivek. Pokud chce uživatel modifikovat tvar Bézierovy křivky, musí vybrat příslušný řídicí bod a změnit jeho polohu. To nemusí být vždy jednoduché a vyžaduje to jistou zkušenost. Tento problém se podstatně komplikuje v třírozměrném prostoru. Přirozenou se potom jeví metoda, která každému bodu řídicího polygonu přiřadí „váhu“ – reálné číslo, jehož změnou se mění tvar křivky. Největším přínosem racionálních Bézierových křivek je možnost manipulace s tvarem křivky bez nutnosti měnit polohy bodů řídicího polygonu.

Křivka má rovnici

 

kde   jsou řídící body a   jsou příslušné váhy.

Definice

editovat
 
Skládání Bézierových křivek

Bézierova křivka n-tého stupně pro n+1 zadaných kontrolních bodů, které tvoří tzv. řídicí polygon, je pro   definována jako

 ,

přičemž   je i-tý Bernsteinův polynom n-tého stupně:

 

Bernsteinovy polynomy tvoří bázi vektorového prostoru polynomu a splňují rekurentní vzorec:

 ,

navíc  , dále  . Je tak umožněn stabilní číselný rekurzivní výpočet hodnoty Bézierovy křivky pomocí Casteljauova algoritmu:

 

Vlastnosti

editovat
  • Křivka se nachází uvnitř konvexní obálky svého řídicího mnohoúhelníku. Z toho plyne, že Bernsteinovy polynomy stupně n jsou rozkladem jedné:
     
  • Křivka prochází přesně koncovými body P0 a Pn:
     
  • Tečny v koncových bodech jsou:
     
     
  • Jedna přímka protíná Bézierovu křivku nanejvýš tolikrát, kolikrát jí protíná její kontrolní polygon (křivka má omezené kolísání).
  • Bézierova křivka je invariantní vůči lineární transformaci (posunutí, změna měřítka, otáčení, atd.), což znamená, že transformovaný řídící polygon dá stejný výsledek, jako když transformujeme každý bod z vygenerované křivky. Obecná Bézierova křivka, na rozdíl od racionální Bézierovy nebo NURBS křivky, není invariantní k perspektivnímu promítání.
  • Leží-li všechny kontrolní body na jedné přímce, pak se Bézierova křivka stává úsečkou (výhoda oproti interpolaci polynomu).
 
Napojení dvou kubických křivek (vlevo) a kubické a kvadratické křivky (vpravo).
  • Vliv kontrolního bodu na křivku je globální. Tzn. posune-li se jeden bod, změní se celá křivka. Proto se v praxi nejčastěji používají tzv. splines, složené pracovní křivky daného stupně, které do sebe kontinuálně přecházejí.
  • Jako zobecněnou formu Bézierovy křivky lze použít Bézierovu plochu. Bézierova plocha (n,m)-tého řádu je plocha ve formě
     
s kontrolními body Pi,j a s Bersteinovým polynomem Bi,n(u) a Bj,m(v). Bézierova plocha může být popsána také dvěma na sebe kolmými Bézierovými křivkami.

Použití

editovat

V počítačové grafice se Bézierovy křivky používají k definování křivek a ploch v rámci CAD, při vektorových grafikách (např. SVG) a k popsání písma (např. PostScript Type 1 a CFF-OpenType).

Příklady

editovat

Lineární Bézierovy křivky (n = 1)

editovat
 
Lineární Bézierova křivka.

Dva kontrolní body P0 a P1 určují lineární Bézierovu křivku, která odpovídá úsečce mezi těmito dvěma body.

Křivka je specifikována jako:

 .

Kvadratické Bézierovy křivky (n = 2)

editovat
 
Kvadratická Bézierova křivka.

Kvadratická Bézierova křivka je dráha, která je popsána funkcí C(t) pro body P0, P1 a P2:

 .

Kubické Bézierovy křivky (n = 3)

editovat
 
Kubická Bézierova křivka.

Kubické Bézierovy křivky mají velký význam pro praxi, protože jsou skládány z menších dílů, kde můžeme jednoduše definovat spojitost v řídících (koncových) bodech jednotlivých segmentů. Další výhodou je omezený vliv změny polohy jednoho bodu na tvar celé křivky. Pro rasterizaci Beziérovy křivky se většinou používá adaptivní algoritmus de Casteljau.

Čtyři body (P0, P1, P2 a P3) určují kubickou Bézierovu křivku. Křivka začíná v bodě P0 a pokračuje směrem P1 a dále směrem na P2 a P3. Obecně křivka skrz body P1 a P2 neprochází – tyto body určují pouze tvar křivky, přičemž P1 určuje směr, kterým křivka z bodu P0 vychází. P2 určuje směr, kterým se křivka přibližuje k bodu P3. Vzdálenost mezi body P0, P1 a mezi body P2, P3 určuje „jak dlouho“ se křivka pohybuje ve směru kontrolního bodu P1 a P2, před tím než se stočí ve směru bodu P3.

 .

Pro každý parametr t Bézierovy křivky může být určen tečný vektor odvozením z výchozí rovnosti. Přitom je délka vektoru měřítkem pro rychlost „postupu“ na křivce.

 

Reference

editovat

V tomto článku byl použit překlad textu z článku Bézierkurve na německé Wikipedii.

Související články

editovat

Externí odkazy

editovat