Hledat:

Invia.cz Eurovíkendy Kanárské ostrovy Dominikánská republika Madeira Last minute Vydělávejte peníze s INVIA.CZ
 

Bézierova křivka

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

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áření a modifikaci jejího tvaru. Pomocí Bézierovy křivky je také možno 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).

Obsah

[editovat] Racionální Bézierova křivka

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

Jak napovídá název, jedná se o zobecnění Bézierových křivek. Pokud chce uživatel změnit tvar křivky Bézierovy křivky, tak musí vybrat příslušný řídící bod a změnit jeho polohu. To nemusí být vždy jednoduché a vyžadujete jistou zkušenost. Tento problém se navíc komplikuje, pracujeme-li v třírozměrném prostoru. Přirozenou se potom jeví metoda, která každému bodu řídicího polygonu přiřadí reálné číslo („váha“), 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 změny polohy bodů řídicího polygonu.

[editovat] Definice

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. řídící polygon, je pro t \in < 0,1 > definována jako

C(t)= \sum_{i=0}^n B_{i,n}(t) P_i ,

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

B_{i,n}(t)= \binom n i t^i (1-t)^{n-i}

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

B_{i,n}(t) = (1-t) \cdot B_{i,n-1}(t) + t \cdot B_{i-1,n-1}(t),

navíc B_{i,n} = 0 \ \forall \ (i < 0) \or (i > n), dále B0,0 = 1. Je tak umožněn stabilní číselný rekurzivní výpočet hodnoty Bézierovy křivky pomocí Casteljauova algoritmu:

\begin{align}C_i^0(t) & = P_i \\
C_i^j(t) & = (1-t)C_i^{j-1}(t) +  tC_{i+1}^{j-1}(t) \begin{cases} j=1,...,n \\
                                                                   i=0,...,n-j. \end{cases}\end{align}

[editovat] Vlastnosti

Napojení dvou kubických křivek (vlevo) a kubické a kvadratické křivky (vpravo).
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.

[editovat] Použití

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).

[editovat] Příklady

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

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:

\begin{align}
      C(t) \ & =\ \sum_{i=0}^1 t^i (1-t)^{1-i} P_i \\
           \ & =\ (1-t)P_0 + t P_1 \mbox{ , } t \in <0,1>
\end{align}.

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

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:

\begin{align}
      C(t) \ & =\ \sum_{i=0}^2 \binom 2 i t^i (1-t)^{2-i} P_i \\
           \ & =\ (1 - t)^{2}P_0 + 2t(1 - t)P_1 + t^{2}P_2 \mbox{ , } t \in <0,1>
\end{align}.

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

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.

\begin{align} 
   C(t) \ & = \ \sum_{i=0}^3 \binom 3 i t^i (1-t)^{3-i} P_i \\
          & = \ (1-t)^3P_0+3t(1-t)^2P_1+3t^2(1-t)P_2+t^3P_3 \\
          & = \ (-P_0 + 3P_1 -3P_2 + P_3) t^3 + (3P_0 - 6P_1 + 3P_2) t^2 + (-3P_0 + 3P_1) t + P_0 \\
          & = \ \underbrace{\begin{pmatrix} t^3 &  t^2 &  t &  1 \end{pmatrix}}_{radkovy \ vektor} 
                \underbrace{\begin{pmatrix} -1 & 3 & -3 & 1 \\
                                  3 & -6& 3 & 0 \\
                                 -3 & 3 & 0 & 0 \\
                                  1 & 0 & 0 & 0 \end{pmatrix}}_{bazova\ matice} 
                \underbrace{\begin{pmatrix} P_0 \\ P_1 \\ P_2 \\ P_3 \end{pmatrix}}_{sloupcovy\ vektor} \quad, t \in <0,1>
\end{align}.

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.

\begin{align}
\dot C(t) \ &= \ (-P_0 + 3P_1 -3P_2 + P_3) 3t^2 + (3P_0 - 6P_1 + 3P_2) 2t + (-3P_0 + 3P_1) \\
            &= \ \begin{pmatrix} 3t^2 & 2t &  1 \end{pmatrix}
                 \begin{pmatrix} -1 &  3 & -3 & 1 \\
                                  3 & -6 &  3 & 0 \\
                                 -3 &  3 &  0 & 0 \end{pmatrix}
                 \begin{pmatrix} P_0 \\ P_1 \\ P_2 \\ P_3 \end{pmatrix} \quad, t \in <0,1>
\end{align}

[editovat] Související články

Projekt Wikiknihy nabízí dokument na téma:
Bézierova křivka
logo Wikimedia Commons
Wikimedia Commons nabízí obrázky, zvuky či videa k tématu

V tomto článku je použit překlad textu z článku Bézierkurve na německé Wikipedii. Číslo revize nebylo určeno.

 
Bézierova křivka v jiných jazycích: বাংলা, Deutsch, English, Español, Suomi, Français, Hrvatski, Italiano, 日本語, 한국어, Lietuvių, Nederlands, ‪Norsk (bokmål)‬, Polski, Português, Русский, Slovenščina, Svenska, ไทย, Українська, 中文
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/B%C3%A9zierova_k%C5%99ivka
Stránka byla naposledy upravena v Stránka byla naposledy editována 23. 12. 2008 v 15:12.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt | Set-top-boxy