Bézier-kurva

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

Bézierkurva är en matematisk uträkning av en kurva. Begreppet används inom den matematiska grenen numerisk analys, och själva Bézierkurvorna är mycket vanligt förekommande inom datorgrafik (inklusive CAD-system[1]).

Historik och användning[redigera | redigera wikitext]

Bézierkurvan publicerades 1962 av den franske ingenjören Pierre Bézier, som använde dem för att designa bilchassin. 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ézierkurvor.[2]

Inom vektorgrafik är Bézierkurvor 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.

Olika kurvor[redigera | redigera wikitext]

Animering av en kvadratisk Bézierkurva.
Kubisk Bézierkurva.

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

Formler för kurvorna[redigera | redigera wikitext]

En Bézierkurva 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ézierkurvan 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ézierkurvan med n+1 ankarpunkter, där \scriptstyle{n \choose i} är binomialkoefficienten.

Se även[redigera | redigera wikitext]

Referenser[redigera | redigera wikitext]

  1. ^ ”Bezierkurvor”. cs.umu.se. http://www.cs.umu.se/kurser/TDBB19/VT05/OH-bilder/Bezier.pdf. Läst 31 januari 2016. 
  2. ^ Schröder, Simon (20 februari 2014). ”Who first defined the so-called Bezier curves?”. researchgate.net. https://www.researchgate.net/post/Who_first_defined_the_so-called_Bezier_curves. Läst 31 januari 2016.