Bézier-kurva

Från Wikipedia
Hoppa till: navigering, sök
Bezier curve.svg

Bézier-kurva finns inom den matematiska grenen numerisk analys, som är en matematisk uträkning av en kurva; Bézier-kurvor används till största del inom datorgrafik.

Bézier-kurvan publicerades 1962 av den franske ingenjören Pierre Bézier, som använde dem för att designa bil-chassin. Kurvorna utvecklades först 1959 av Paul de Casteljau som använde de Casteljaujs algoritm, en numeriskt stabil metod för att utvärdera Bézier-kurvor.

Inom vektorgrafik är Bézier-kurvor ett viktigt verktyg. De används för att skapa modeller med rundade kurvor som kan skalas obegränsat, utan att förlora kvalitet. Banor, som de ofta kallas i olika bildbehandlingsprogram som Adobe Illustrator, Adobe Photoshop och GIMP är kombinationer av Bézier-kurvor som lagts ihop och bildar längre linjer. Dessa banor har inte samma restriktioner som rastergrafik och är intuitiva att använda. De används också inom animering som ett verktyg för att kontrollera rörelse i applikationer som Adobe Flash, Adobe After Effects och Autodesk 3ds Max.

Kurvorna[redigera | redigera wikitext]

Animering av en kvadratisk Bézier-kurva.
Kubisk Bézier-kurva.

Det krävs tre punkter för att kunna skapa en kvadratisk Bézier-kurva (del av en parabel) och fyra punkter för en kubisk Bézier-kurva. Dessa punkter kallas för ankarpunkter.

Formlerna[redigera | redigera wikitext]

En Bézier-kurva med 2 ankarpunkter, \mathbf{P}_0 och \mathbf{P}_1, bildar en rak linje och beskrivs med formeln:

\mathbf{B}(t) = (1 - t)\mathbf{P}_0 + t\mathbf{P}_1, \quad t \in [0; 1].

Vilket lätt inses eftersom kurvan börjar i punkten \mathbf{P}_0 och ju närmare t kommer 1, desto närmare ska utritningspunkten vara \mathbf{P}_1.

Lägger man nu till ankarpunkten \mathbf{P}_2 blir formeln:

\mathbf{B}(t) = (1 - t)^{2}\mathbf{P}_0 + 2(1 - t)t\mathbf{P}_1 + t^{2}\mathbf{P}_2, \quad t \in [0,1].

Detta är på grund av att Bézier-kurvan kan beskrivs rekursivt som på följande sätt:

\mathbf{B}_{\mathbf{P}_0, \ldots, \mathbf{P}_{n}}(t) = (1 - t)\mathbf{B}_{\mathbf{P}_0, \ldots, \mathbf{P}_{n-1}}(t) + t\mathbf{B}_{\mathbf{P}_1, \ldots, \mathbf{P}_{n}}(t), \quad t \in [0; 1],

vilket kan inses om man observerar animeringen av den kubiska Bézier-kurvan.

Utveckling av den rekursiva formeln ger:

\mathbf{B}_{\mathbf{P}_0, \ldots, \mathbf{P}_{n}}(t) = \sum_{i=0}^n {n \choose i} (1 - t)^{n - i}\,t^i\,\mathbf{P}_i, \quad t \in [0; 1],

som beskriver Bézier-kruvan med n+1 ankarpunkter, där \scriptstyle{n \choose i} är binomialkoefficienten.

Se även[redigera | redigera wikitext]