Bézier-kurva

Från Wikipedia
Hoppa till: navigering, sök
Bezier curve.svg
Animering av en kvadratisk Bézierkurva.

Bézier-kurva ä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]).

Den genombrytande insikten som ledde fram till Bézier-kurvan var att istället för att definiera kurvan med punkter som ligger på kurvan, så använder man så kallade kontrollpunkter nära kurvan. Kontrollpunkterna bildar ett kontrollpolygon. Istället för att ändra kurvan direkt, kan man istället ändra kontroll-polygonet och kurvan följer på ett intuitivt sätt[2]. Bézier-kurvan är en parametriserad kurva som använder Bernsteins polynom som bas. Det är intuitivt att tänkta sig parametrisering av tiden, där kontrollpunkterna bestämmer riktningen och farten av kurvan.[3]

Historik och användning[redigera | redigera wikitext]

Beizer-kurvor användes och utvecklades först inom bilindustrin för att lösa problem med att rita och presentera ritningar på datorn. År 1959 anställde det franska företagen Citroën matematikern Paul de Faget de Casteljau. De Casteljau anpassade Bernstein polynomen för sin definition av kurvorna och utvecklade den nu kallade de Casteljau algoritmen. Att hans arbete inte blev känt förrän senare berodde på att Citroën höll hans arbete hemligt under en lång tid. Istället var det Pierre Bézier som fick ge namn åt Bézier-kurvan. Bézier som ledde designavdelningen Rénault, ett annat franskt företag, jobbade självständigt och utvecklade en kurva som visade sig vara identisk med de Casteljaus.[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.

Generell definition med exempel.[redigera | redigera wikitext]

Bézier kurvan använder Bernstein's polynom som bas. Med en given sekvens av punkter representeras Bézier kurvan med grad n (order n+1) av

Animering av en linjär Bézier-kurva
Animering av en linjär Bézier-kurva

där

är Bernstein polynomet och är binomialkoefficienter. [4]

Punkterna är ett set av kontrollpunkter där den första respektive den sista alltid är start och ändpunkterna på kurvan. Kurvan behöver inte passera igenom de andra punkterna utan de finns för att ge information om i vilken riktningen och fart kurvan ska röra sig.

Animering av en kvadratisk Bézierkurva.

Enklaste fallet får har vi två stycket kontrollpunkter och som bildar en linje.

Med n=2 får vi alltså 3 kontrollpunkter och en så kallad kvadratisk Bézier-kurva:

n=3 ger en kubisk Bézierkurva:

Kubisk Bézierkurva.

Kurvan också representeras med matriser. t.ex (n=3).

[3]

 Egenskaper hos Bézierkurvan.[redigera | redigera wikitext]

Bézier-kurvan är invariant under affin avbildning. Om man vill transformera kurvan behöver man alltså bara avbilda kontrollpunkterna . Denna egenskap är speciellt viktig inom grafiken: då man ska beräkna en kurva som t.ex blivit roterad behöver man bara avbilda kontrollpunkterna och sedan beräkna kurvan utifrån avbildningen.

En annan egenskap är att kurvan tangerar kontroll-polygonet som skapas mellan kontrollpunkterna . Detta kan ses av förstaderivatan:

Speciellt och .

Med bézier-kurvans kontrollpunkter kan man också skapa ett konvext hölje i vilket kurvan alltid kommer befinna sig. Denna egenskap kan vara väldigt effektiv vid skärningsproblem. T.ex. om man vill se om kurvor skär varandra kan man utesluta alla kurvor där höljena inte skär varandra, alltså om den konvexa mängden inte delar några element. [5]

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. ^ [a b] Gerald Farin. A History of Curves and Surfaces in CAGD. http://kowon.dongseo.ac.kr/~lbg/cagd/history1.pdf. 
  3. ^ [a b] Dr.P. V. Madhusudhan (26 oktober 2010). ”Lec-46 Parametric Bezier Curve”. NPTEL. https://www.youtube.com/watch?v=-J2m_ugWNtc&t=1801s. Läst 14 maj 2017. 
  4. ^ M. Patrikalakis, Nicholas. Shape Interrogation for Computer Aided Design and Manufacturing. http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/. Läst 15 maj 2017 
  5. ^ Agoston, Max K. (2005-12-06) (på en). Computer Graphics and Geometric Modelling: Implementation & Algorithms. Springer Science & Business Media. ISBN 9781846281082. https://books.google.se/books?id=TAYw3LEs5rgC&pg=PA404&redir_esc=y#v=onepage&q&f=false. Läst 15 maj 2017