Předchozí home.gif (1235 bytes) right.gif (1395 bytes)


6. Obecné Bézierovy křivky

    Zobecněním Bézierových kubik jsou obecné Bézierovy křivky. Bézierova křivka n-tého řádu vznikne z n+1 bodů řídicího polygonu P0, P1, ... , Pn.

Obecná Bézierova křivka je určena vztahem:

( 6.1 )

kde jsou Bernsteinovy polynomy n-tého stupně

,

( 6.2 )

kde t Î < 0,1 > a i = 0,1, ..., n.

Položíme-li ve vztahu ( 6.1 ) t = 0, je P(0) = P0. Analogicky pro t = 1 je P(1) = Pn. Křivka tedy prochází krajními body řídicího polygonu.

Zderivujme P(t) a dostaneme:

( 6.3 )

Dosazením za t = 0 a t = 1 vyplyne, že

P'(0) = n(P0 - P1),
P'(1) = n(Pn-l - Pn).

( 6.4 )

Tečné vektory mají směr spojnice vždy dvojice krajních bodů a velikost n-násobku jejich velikosti (n je stupeň aproximační křivky).

Pro spojité a hladké spojení platí totéž, co již bylo řečeno u kubických Bézierových křivek. Je-li identický poslední bod předchozího oblouku s prvním bodem oblouku následujícího, je složený oblouk spojitý. Je-li navíc tento bod středem úsečky, jež tvoří spojnici mezi předposledním bodem předchozí křivky a druhým bodem křivky následující, je spojení hladké.

Bernsteinovy polynomy ( 6.2 ) použité v obecné Bézierově aproximaci, mají následující vlastnosti:

l. a je

2. pro

3.

První vztah zaručuje nezápornost Bernsteinových polynomů.

Druhý pak zaručuje, že výsledná křivka bude vždy ležet v tzv. konvexní obálce bodů řídicího polygonu. Z této vlastnosti plyne i podstatná výhoda nasazení této metody v technické praxi. Nepřirozené vlnění výsledných křivek je vždy v mezích konvexní obálky.

Třetí vlastnost byla motivující pro P. de Casteljau pro tvorbu rekurzívního algoritmu pro generování Bézierových křivek.

Je zřejmé, že Bézierovy kubiky jsou zvláštním případem obecných Bézierových křivek pro n = 3.

Častým technickým požadavkem je přidání bodu k řídicímu polygonu tak, aby se tvar křivky nezměnil. Hovoříme potom o zvýšení stupně aproximační křivky. Mějme P0, P1, ... , Pn, n+1 bodů řídicího polygonu. Nový polygon bude mít n + 2 bodů Q0, Q1, ..., Qn, Qn+1. Aby byla zaručena identita křivek, musí pro body nového polygonu platit:

Qi=h iPi-1+(1 - h i)Pi.

( 6.5 )

kde a i = 0,1, ..., n+1.

( 6.6 )

Bézierovy křivky jsou pro svou snadnou manipulovatelnost často používány v CAD systémech (např. AutoCAD). Jejich jednoduchá tvorba zaručuje jejich snadnou manipulovatelnost (pouhou změnou polohy bodu se mění tvar výsledné křivky) a ze vztahů ( 4.1 ) a ( 6.1 ) plyne, že tyto křivky nemají nikde singularity. Z hlediska programátora je podstatné i to, že se ve všech uvedených vztazích vyskytuje pouze násobení a sčítání (kombinační čísla v Bernsteinových polygonech jsou spočteny dopředu konstruktérem systému, který se rozhodl, jaký stupeň křivek bude volit). Díky této vlastnosti jsou programy, které používají Bézierovy aproximace, velmi rychlé. Pro polynomy je možno využít Hornerova schématu [Bart65].

Applet pro experimenty :

Návod na používání appletů


Bézierovy kubiky Předchozí home.gif (1235 bytes) right.gif (1395 bytes) Algoritmus de Casteljau