Bézier-görbe

Harmadfokú Bézier-görbe

A Bézier-görbe a számítógépes grafikában gyakran használt parametrikus görbe. A Bézier-görbe több dimenzióra való általánosítását Bézier-felületnek nevezik, ezeknek speciális esete a Bézier-háromszög.

A vektorgrafikában a Bézier-görbéket szabadon alakítható sima görbék modellezésére használják. A képszerkesztő programok, mint például az Inkscape, Adobe Photoshop vagy a GIMP a görbe vonalak rajzolásához egymáshoz kapcsolt Bézier-görbék sorozatát használják. Ezeket a görbéket nem korlátozza a raszterképek felbontása és interaktívan alakíthatóak. A Bézier-görbéket a számítógépes animációban a mozgások vezérlésének eszközeként is használják olyan programok, mint például az Adobe Flash, Adobe After Effects, Microsoft Expression Blend, Blender, Maya és az Autodesk 3D Studio Max.

A Bézier-görbéket az idő dimenziójában is használják, különösen az animációkban és az interfésztervezésben, azaz Bézier-görbéket lehet használni a képernyőn végbemenő mozgások sebességének az idő függvényében való megadására ahelyett, hogy fázisképenként egyszerűen néhány képpontnyi elmozdulást írnának elő.

A Bézier-görbék a matematikában jóval a számítógépek illetve számítógépes grafika megjelenése előtt ismertek voltak. Szergej Natanovics Bernstein orosz matematikus 1912-ben publikált cikkében a Hermite-polinomokkal kapcsolatos kutatásai során definiálja a később róla elnevezett Bernstein-polinomot. Ezt a x ∈ [0, 1] intervallumra korlátozott Bernstein-polinomot használta fel Pierre Bézier a Renault gyár mérnöke a számítógépes grafikai tervezésben.[1]

A Bézier-görbékről 1962-ben Pierre Bézier francia mérnök sok publikációja jelent meg, aki a gépkocsi-karosszériák tervezésénél használta azokat. A görbék számítógépes grafikai alkalmazásához szükséges számítógépes algoritmust 1959-ben Paul de Casteljau dolgozta ki. Ez a Bézier-görbék előállításának egy numerikusan stabil módszere: a róla elnevezett de Casteljau-algoritmus.

Alkalmazás

Számítógépes grafika

A Bézier-görbéket széles körben alkalmazzák a számítógépes grafikában sima görbe vonalak modellezésére. A görbék interaktív módszerrel is könnyen igazíthatók kontrollpontjaik mozgatásával. Affin transzformációjuk, mint például a transzláció és a rotáció, könnyen elvégezhető kontrollpontjaik megfelelő transzformációjával.

Általában másod- és harmadfokú Bézier-görbéket használnak; a magasabb fokszámú görbék előállítása túlságosan sok számítást igényel. A bonyolultabb alakú vonalak közelítő alakját alacsonyabb fokszámú Bézier-görbékből állítják össze. A csatlakozási pontokon a görbe simaságát az biztosítja, ha a közös pont és a hozzájuk közelebb eső kontrollpontok egy egyenesen fekszenek.

A Bézier-görbe raszterré alakításának legegyszerűbb módja az, ha sok közel fekvő pontját meghatározzák, majd ezeket közelítő egyenesekkel összekötik. Ennek a módszernek a hibája, hogy nem biztosítható, hogy a raszterkép mindenütt elegendően simának látszódjék, ha a pontok túlságosan távol helyezkedhetnek el egymástól. Emiatt sokszor túlságosan sok pontot generál az ilyen algoritmus az egyeneshez közel álló görbék esetében. Szokásos módszer a rekurzív felosztásos eljárás, melynek során az algoritmus ellenőrző pontokat vizsgál meg, hogy a közelítő egyeneshez eléggé közel fekszenek-e, és ha nem, a két pont között további pontot jelöl ki, majd megismétli az eljárást.

Animáció

Animációnál a Bézier-görbéket például mozgások leírására használják. A felhasználó kijelöli a kívánt útvonalat, az alkalmazás pedig előállítja az objektum mozgásának megfelelő képkockákat. A módszer térbeli mozgásokra is alkalmazható.

Betűk

A TrueType betűkészlet másodfokú Bézier-görbékből összeállított Bézier-splineokat használ a betűk megjelenítéséhez.

A korszerű képmegjelenítő rendszerek, mint a PostScript, Asymptote és a Metafont harmadfokú Bézier-görbékből álló Bézier-splineokkal rajzolja fel a betűket.

Különböző fokszámú görbék

Lineáris Bézier-görbe

Adott a P0 és P1 pont, a lineáris Bézier-görbe egyszerűen a két pontot összekötő egyenes szakasz. A görbét a

B ( t ) = P 0 + t ( P 1 P 0 ) = ( 1 t ) P 0 + t P 1  ,  t [ 0 , 1 ] {\displaystyle \mathbf {B} (t)=\mathbf {P} _{0}+t(\mathbf {P} _{1}-\mathbf {P} _{0})=(1-t)\mathbf {P} _{0}+t\mathbf {P} _{1}{\mbox{ , }}t\in [0,1]}

függvény írja le, és ekvivalens a lineáris interpolációval.

Másodfokú Bézier-görbe

A másodfokú Bézier-görbét három pont: a P0, P1, és P2 határoz meg, és a B(t) függvény írja le:

B ( t ) = ( 1 t ) 2 P 0 + 2 ( 1 t ) t P 1 + t 2 P 2  ,  t [ 0 , 1 ] . {\displaystyle \mathbf {B} (t)=(1-t)^{2}\mathbf {P} _{0}+2(1-t)t\mathbf {P} _{1}+t^{2}\mathbf {P} _{2}{\mbox{ , }}t\in [0,1].}

A görbe a P0 ponttól indul a P1 pont irányába, majd elhajlik, és a P2 pontban végződik. Más szavakkal mind a P0, mind a P2 pont érintője átmegy a P1 ponton. Ez közvetlenül látható a Bézier-görbét leíró függvény deriváltjából:

B ( t ) = 2 ( 1 t ) ( P 1 P 0 ) + 2 t ( P 2 P 1 ) . {\displaystyle \mathbf {B} '(t)=2(1-t)(\mathbf {P} _{1}-\mathbf {P} _{0})+2t(\mathbf {P} _{2}-\mathbf {P} _{1})\,.}

A másodfokú Bézier-görbe egyben egy parabolaív is.

Harmadfokú Bézier-görbe

A harmadfokú Bézier-görbét (egy síkban fekvő vagy térbeli elhelyezkedésű) négy pont: P0, P1, P2 és P3 definiál. A görbe a P0 pontból indul a P1 irányába és a P3 pontba érkezik a P2 irányából. Általában nem halad át a P1 vagy P2 ponton, ezek csak az irányokról adnak információt. A P0 és P1 pont közötti távolság azt határozza meg, hogy „milyen hosszan” halad a P2 irányába, mielőtt a P3 pont felé fordul. A görbe parametrikus egyenlete:

B ( t ) = ( 1 t ) 3 P 0 + 3 ( 1 t ) 2 t P 1 + 3 ( 1 t ) t 2 P 2 + t 3 P 3  ,  t [ 0 , 1 ] . {\displaystyle \mathbf {B} (t)=(1-t)^{3}\mathbf {P} _{0}+3(1-t)^{2}t\mathbf {P} _{1}+3(1-t)t^{2}\mathbf {P} _{2}+t^{3}\mathbf {P} _{3}{\mbox{ , }}t\in [0,1].}

A P1 és P2 bizonyos elhelyezkedése önmagát metsző vagy csúcsos görbét eredményezhet.

Általánosítás

Az n-edfokú Bézier-görbe a következőképpen általánosítható. Legyen n+1 pont: P0, P1,..., Pn, a Bézier-görbe egyenlete:

B ( t ) = i = 0 n ( n i ) ( 1 t ) n i t i P i = ( 1 t ) n P 0 + ( n 1 ) ( 1 t ) n 1 t P 1 + + ( n n 1 ) ( 1 t ) t n 1 P n 1 + t n P n , t [ 0 , 1 ] , {\displaystyle {\begin{aligned}\mathbf {B} (t)&=\sum _{i=0}^{n}{n \choose i}(1-t)^{n-i}t^{i}\mathbf {P} _{i}\\&=(1-t)^{n}\mathbf {P} _{0}+{n \choose 1}(1-t)^{n-1}t\mathbf {P} _{1}+\cdots \\&{}\quad \cdots +{n \choose n-1}(1-t)t^{n-1}\mathbf {P} _{n-1}+t^{n}\mathbf {P} _{n},\quad t\in [0,1],\end{aligned}}}

ahol ( n i ) {\displaystyle \scriptstyle {n \choose i}} a binomiális együttható.

Például n = 5 esetre:

B ( t ) = ( 1 t ) 5 P 0 + 5 t ( 1 t ) 4 P 1 + 10 t 2 ( 1 t ) 3 P 2 + 10 t 3 ( 1 t ) 2 P 3 + 5 t 4 ( 1 t ) P 4 + t 5 P 5 , t [ 0 , 1 ] . {\displaystyle {\begin{aligned}\mathbf {B} (t)&=(1-t)^{5}\mathbf {P} _{0}+5t(1-t)^{4}\mathbf {P} _{1}+10t^{2}(1-t)^{3}\mathbf {P} _{2}\\&{}\quad +10t^{3}(1-t)^{2}\mathbf {P} _{3}+5t^{4}(1-t)\mathbf {P} _{4}+t^{5}\mathbf {P} _{5},\quad t\in [0,1].\end{aligned}}}

Ez az összefüggés az alábbi rekurzív formulával fejezhető ki: Jelölje B P 0 P 1 P n {\displaystyle \mathbf {B} _{\mathbf {P} _{0}\mathbf {P} _{1}\ldots \mathbf {P} _{n}}} a P0, P1, ..., Pn pontokkal meghatározott Bézier-görbét. Ezzel

B ( t ) = B P 0 P 1 P n ( t ) = ( 1 t ) B P 0 P 1 P n 1 ( t ) + t B P 1 P 2 P n ( t ) {\displaystyle \mathbf {B} (t)=\mathbf {B} _{\mathbf {P} _{0}\mathbf {P} _{1}\ldots \mathbf {P} _{n}}(t)=(1-t)\mathbf {B} _{\mathbf {P} _{0}\mathbf {P} _{1}\ldots \mathbf {P} _{n-1}}(t)+t\mathbf {B} _{\mathbf {P} _{1}\mathbf {P} _{2}\ldots \mathbf {P} _{n}}(t)}

Más szavakkal az n-edfokú Bézier-görbe két (n – 1)-edfokú Bézier-görbe közötti lineáris interpoláció.

Negyedfokú Bernstein-polinomok a [0, 1] intervallumon.

Tulajdonságai

A parametrikus görbékhez néhány fogalom kapcsolódik. A Bézier-görbe egyenlete

B ( t ) = i = 0 n b i , n ( t ) P i , t [ 0 , 1 ] {\displaystyle \mathbf {B} (t)=\sum _{i=0}^{n}\mathbf {b} _{i,n}(t)\mathbf {P} _{i},\quad t\in [0,1]}

ahol a

b i , n ( t ) = ( n i ) t i ( 1 t ) n i , i = 0 , n {\displaystyle \mathbf {b} _{i,n}(t)={n \choose i}t^{i}(1-t)^{n-i},\quad i=0,\ldots n}

polinomok az úgynevezett n-edfokú Bernstein polinomok, ahol t0 = 1 és (1 – t)0 = 1.

Az ( n i ) {\displaystyle \scriptstyle {n \choose i}} binomiális együttható alternatív jelölése

n C i = ( n i ) = n ! i ! ( n i ) ! . {\displaystyle ^{n}\mathbf {C} _{i}={n \choose i}={\frac {n!}{i!(n-i)!}}.}

A Pi pontokat a Bézier-görbéhez tartozó kontrollpontoknak hívják. A görbéhez tartozó keret a kontrollpontok egyenesekkel való összekötésével kialakított tört vonalsorozat.

  • A görbe a P0 pontnál kezdődik és a Pn pontnál ér véget. Ezt a módszert végpont interpolációnak hívják.
  • A görbe akkor és csakis akkor egyenes vonal, ha a kontrollpontok egy egyenesen fekszenek.
  • A görbe kezdőpontjának (végpontjának) érintője a keret első (utolsó) szakasza.
  • A görbét bármely pontjánál két részgörbére lehet vágni, mindkettő szintén Bézier-görbe.
  • Néhány egyszerűnek látszó görbe (például a kör) nem helyettesíthető pontosan Bézier-görbével vagy szakaszaival, bár négy harmadfokú Bézier-görbével közelített kör a pontos alakzattól mindössze egy ezredrésznyire tér el a kontrollpontok megfelelő felvételével.
  • Egy Bézier-görbéhez rajzolt egyenközű („párhuzamos”) görbét néhány kivételtől eltekintve nem lehet Bézier-görbével pontosan leírni.

Bézier-görbék szerkesztése

Animation of a linear Bézier curve, t in [0,1]
Lineáris Bézier-görbe animációja, 0 ≤ t ≤1

Lineáris görbe

A t paraméter a lineáris Bézier-görbe esetén szemléletesen a B(t) távolságát jelenti a P0 ponttól a P1 irányában. Például t=0,25 esetén a B(t) a P0 ponttól P1 pontig terjedő távolság negyed részét tette meg. A B(t) egyenest ír le a P0 pont és a P1 pont között.

Másodfokú görbe

A másodfokú Bézier-görbéknél a Q0 és Q1 segédpontot a t paraméter függvényében így lehet szerkeszteni: (t 0 és 1 között változik)

  • A Q0 pont helyzete P0 ponttól P1 pontig változik, miközben lineáris Bézier-görbét ír le.
  • A Q1 pont helyzete P1 ponttól P2 pontig változik, miközben lineáris Bézier-görbét ír le.
  • A B(t) pont helyzete Q0 ponttól Q1 pontig változik, miközben másodfokú Bézier-görbét ír le.
Construction of a quadratic Bézier curve Animation of a quadratic Bézier curve, t in [0,1]
Másodfokú Bézier-görbe szerkesztése Másodfokú Bézier-görbe animációja, 0 ≤ t ≤ 1

Magasabb fokszámú görbék

Magasabb fokszámú görbékhez több közbenső pont szükséges. Harmadfokú görbéhez Q0, Q1, és Q2 közbenső pontot lehet szerkeszteni, ezek lineáris Bézier-görbéket határoznak meg, az R0 és R1 pont pedig másodfokú Bézier-görbét ír le:

Construction of a cubic Bézier curve Animation of a cubic Bézier curve, t in [0,1]
Harmadfokú Bézier-görbe szerkesztése Harmadfokú Bézier-görbe animációja, 0 ≤ t ≤ 1

Negyedfokú görbéhez a Q0, Q1, Q2 és Q3 pont lineáris, az R0, R1 és R2 pont másodfokú, az S0 és S1 pont pedig harmadfokú Bézier-görbét határoz meg:

Construction of a quartic Bézier curve Animation of a quartic Bézier curve, t in [0,1]
Negyedfokú Bézier-görbe szerkesztése Negyedfokú Bézier-görbe animációja, 0 ≤ t ≤ 1

Fokszámemelés

Az n-edfokú Bézier-görbét ugyanolyan alakú n + 1 görbévé lehet alakítani. Ez akkor hasznos, ha az adott szoftver csak bizonyos fokszámú Bézier-görbéket támogat. Például rajzolható negyedfokú Bézier-görbe a Cairo programmal is, holott az csak harmadfokú Bézier-görbét használ.

A fokszám emeléshez az B ( t ) = ( 1 t ) B ( t ) + t B ( t ) {\displaystyle \mathbf {B} (t)=(1-t)\mathbf {B} (t)+t\mathbf {B} (t)} egyenletből lehet kiindulni. Minden b i , n ( t ) P i {\displaystyle \mathbf {b} _{i,n}(t)\mathbf {P} _{i}} tagot megszorozva (1 – t) vagy t szorzóval a fokszám eggyel emelkedik. Az alábbi példa a másodfokú görbe harmadfokúvá alakítását mutatja be:

( 1 t ) 2 P 0 + 2 ( 1 t ) t P 1 + t 2 P 2 = ( 1 t ) 3 P 0 + ( 1 t ) 2 t P 0 + 2 ( 1 t ) 2 t P 1 + 2 ( 1 t ) t 2 P 1 + ( 1 t ) t 2 P 2 + t 3 P 2 = ( 1 t ) 3 P 0 + 3 ( 1 t ) 2 t P 0 + 2 P 1 3 + 3 ( 1 t ) t 2 2 P 1 + P 2 3 + t 3 P 2 {\displaystyle {\begin{aligned}&{}\quad (1-t)^{2}\mathbf {P} _{0}+2(1-t)t\mathbf {P} _{1}+t^{2}\mathbf {P} _{2}\\&=(1-t)^{3}\mathbf {P} _{0}+(1-t)^{2}t\mathbf {P} _{0}+2(1-t)^{2}t\mathbf {P} _{1}\\&{}\qquad +2(1-t)t^{2}\mathbf {P} _{1}+(1-t)t^{2}\mathbf {P} _{2}+t^{3}\mathbf {P} _{2}\\&=(1-t)^{3}\mathbf {P} _{0}+3(1-t)^{2}t{\frac {\mathbf {P} _{0}+2\mathbf {P} _{1}}{3}}+3(1-t)t^{2}{\frac {2\mathbf {P} _{1}+\mathbf {P} _{2}}{3}}+t^{3}\mathbf {P} _{2}\end{aligned}}}

Tetszőleges n fokszámra az alábbiak írhatók:

( n + 1 i ) ( 1 t ) b i , n = ( n i ) b i , n + 1 , ( 1 t ) b i , n = n + 1 i n + 1 b i , n + 1 {\displaystyle {n+1 \choose i}(1-t)\mathbf {b} _{i,n}={n \choose i}\mathbf {b} _{i,n+1},\quad (1-t)\mathbf {b} _{i,n}={\frac {n+1-i}{n+1}}\mathbf {b} _{i,n+1}}
( n + 1 i + 1 ) t b i , n = ( n i ) b i + 1 , n + 1 , t b i , n = i + 1 n + 1 b i + 1 , n + 1 {\displaystyle {n+1 \choose i+1}t\mathbf {b} _{i,n}={n \choose i}\mathbf {b} _{i+1,n+1},\quad t\mathbf {b} _{i,n}={\frac {i+1}{n+1}}\mathbf {b} _{i+1,n+1}}
A P1 súlyának hatása a racionális Bézier-görbe lefutására
B ( t ) = ( 1 t ) i = 0 n b i , n ( t ) P i + t i = 0 n b i , n ( t ) P i = i = 0 n n + 1 i n + 1 b i , n + 1 ( t ) P i + i = 0 n i + 1 n + 1 b i + 1 , n + 1 ( t ) P i = i = 0 n + 1 ( i n + 1 P i 1 + n + 1 i n + 1 P i ) b i , n + 1 ( t ) = i = 0 n + 1 b i , n + 1 ( t ) P i {\displaystyle {\begin{aligned}\mathbf {B} (t)&=(1-t)\sum _{i=0}^{n}\mathbf {b} _{i,n}(t)\mathbf {P} _{i}+t\sum _{i=0}^{n}\mathbf {b} _{i,n}(t)\mathbf {P} _{i}\\&=\sum _{i=0}^{n}{\frac {n+1-i}{n+1}}\mathbf {b} _{i,n+1}(t)\mathbf {P} _{i}+\sum _{i=0}^{n}{\frac {i+1}{n+1}}\mathbf {b} _{i+1,n+1}(t)\mathbf {P} _{i}\\&=\sum _{i=0}^{n+1}\left({\frac {i}{n+1}}\mathbf {P} _{i-1}+{\frac {n+1-i}{n+1}}\mathbf {P} _{i}\right)\mathbf {b} _{i,n+1}(t)=\sum _{i=0}^{n+1}\mathbf {b} _{i,n+1}(t)\mathbf {P'} _{i}\end{aligned}}}

ahol P 1 {\displaystyle \mathbf {P} _{-1}} és P n + 1 {\displaystyle \mathbf {P} _{n+1}} tetszőleges.

Az új kontrollpontok:[2]

P i = i n + 1 P i 1 + n + 1 i n + 1 P i , i = 0 , , n + 1. {\displaystyle \mathbf {P'} _{i}={\frac {i}{n+1}}\mathbf {P} _{i-1}+{\frac {n+1-i}{n+1}}\mathbf {P} _{i},\quad i=0,\ldots ,n+1.}

Racionális Bézier-görbék

Kúpszeletszakaszok pontosan megjeleníthetők racionális Bézier-görbékkel

A racionális Bézier-görbék további súlyokat adnak a függvényekhez abból a célból, hogy pontosabban közelítsék a kívánt alakot. A számláló súlyozott Bernstein-formájú Bézier-görbe, a nevező pedig Bernstein-polinomok súlyozott összege. A racionális Bézier-görbék többek között kúpszelet szakaszok pontos megjelenítésére használhatók[3]

Legyen n + 1 darab Pi kontrollpont, a racionális Bézier-görbe egyenlete:

B ( t ) = i = 0 n b i , n ( t ) P i w i i = 0 n b i , n ( t ) w i {\displaystyle \mathbf {B} (t)={\frac {\sum _{i=0}^{n}b_{i,n}(t)\mathbf {P} _{i}w_{i}}{\sum _{i=0}^{n}b_{i,n}(t)w_{i}}}}

vagy egyszerűen

B ( t ) = i = 0 n ( n i ) t i ( 1 t ) n i P i w i i = 0 n ( n i ) t i ( 1 t ) n i w i . {\displaystyle \mathbf {B} (t)={\frac {\sum _{i=0}^{n}{n \choose i}t^{i}(1-t)^{n-i}\mathbf {P} _{i}w_{i}}{\sum _{i=0}^{n}{n \choose i}t^{i}(1-t)^{n-i}w_{i}}}.}

Tudnivalók:

  • Bármilyen NURBS görbe hiba nélkül megadható racionális Bézier-görbék seregével is, amik a végpontjaiknál csatlakoznak. (A bizonyításhoz a NURBS csomópontvektorában minden csomópont multiplicitását k-ra kell növelni csomópontbeszúrásokkal, ha k-adfokú a NURBS, és így végül leolvashatóak a k-adfokú Bézier-görbék, amik a kibővített csomópontú NURBS szegmensei lesznek.)
  • Ennél több is elmondható: minden k dimenziós C(t) görbe, ami explicit felírható legfeljebb n-edfokú polinomokkal, felírható n-edfokú Bézier- és B-Spline-görbeként is, és minden k dimenziós C(t) görbe, ami felírható legfeljebb n-edfokú polinomok hányadosaival, felírható n-edfokú racionális Bézier-görbeként és NURBS-ként is. Helyesebb tehát a Béziert és a NURBS-ot reprezentációnak hívni, hiszen egy adott görbét több különböző módon is reprezentálhatunk, és kiválaszthatjuk a konkrét alkalmazás szempontjából számunkra legelőnyösebb, legkényelmesebb reprezentációt.
  • Racionális Bézier-görbék eltolási görbéje sem adható meg általában hiba nélkül racionális Bézier-görbékkel. Az ok leolvasható az eltolási görbe képletéből. Ha az eltolás értéke d, akkor: C o f f s e t ( t ) = C ( t ) + d n o r m ( t ) = ( x ( t ) , y ( t ) ) + d ( y ˙ ( t ) , x ˙ ( t ) ) x ˙ ( t ) 2 + y ˙ ( t ) 2 {\displaystyle \mathbf {C} _{offset}(t)=\mathbf {C} (t)+d\cdot norm(t)=(x(t),y(t))+{\frac {d({\dot {y}}(t),-{\dot {x}}(t))}{\sqrt {{\dot {x}}(t)^{2}+{\dot {y}}(t)^{2}}}}}
    A legnagyobb baj a hányadosban szereplő gyökjellel van, ugyanis ha a gyökvonás nem végezhető el a deriváltak négyzetösszeg-polinomján szimbolikusan, akkor a helyébe írható Taylor-polinom végtelen számú nemnulla tagot fog tartalmazni. Ezt csak egy végtelen fokszámú racionális Bézier-görbével lehetne hibátlanul megadni. Jó megoldás nincs; ilyenkor az eltolási görbe jó közelítéshez vagy egy lényegesen magasabb fokszámú polinom kell (ami általában nem praktikus), vagy a kontrollpontok számát kell az elvárt hiba függvényében exponenciálisan megnövelni.

Jegyzetek

  1. http://www.ams.org/samplings/feature-column/fcarc-bezier#2 From Bézier to Bernstein
  2. Gerald Farin: Curves and surfaces for computer-aided geometric design. Elsevier Science & Technology Books 1997, ISBN 978-0-12-249054-5, 4. kiadás
  3. Neil Dodgson: Some Mathematical Elements of Graphics: Rational B-splines

Fordítás

  • Ez a szócikk részben vagy egészben a Bézier curve című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Külső hivatkozások

Commons:Category:Bezier Curves
A Wikimédia Commons tartalmaz Bézier-görbe témájú médiaállományokat.
  • Kovács Zoltán: Számítógépi geometria. 3. fejezet Archiválva 2016. március 13-i dátummal a Wayback Machine-ben
  • Java applet
  • Poly Bézier Curve Construction by jsDraw2D Graphics Library. The library is for JavaScript and is open source. The drawPolyBezier function in jsDraw2D implements the poly Bézier drawing algorithm.
  • Don Lancaster's Cubic Spline Library describes how to approximate a circle (or a circular arc, or a hyperbola) by a Bézier curve; using cubic splines for image interpolation, and an explanation of the math behind these curves.
  • Weisstein, Eric W.: Bézier Curve (angol nyelven). Wolfram MathWorld
  • Module for Bézier Curves by John H. Mathews
  • Multi-degree 2D Bézier Curve java applet Archiválva 2011. június 7-i dátummal a Wayback Machine-ben - An interactive bezier curve applet implementing: adding and deleting control points, showing control polygon and convex hull, manipulating sampling amount and elevating degree without changing the curve.
  • PolyBezier – The Microsoft Win32 GDI API function, which draws Bézier curves in Windows graphic applications, like MS Paint.
  • Finding All Intersections of Two Bézier Curves. – Locating all the intersections between two Bézier curves is a difficult general problem, because of the variety of degenerate cases. By Richard J. Kinch.
  • SketchPad – A small program written in C and Win32 that implements the functionality to create and edit Bézier curves. Demonstrates also the use of de Casteljau's algorithm to split a Bézier curve.
  • Bézier Curves interactive demo using ActionScript and FlashPlayer Archiválva 2009. április 23-i dátummal a Wayback Machine-ben – Includes Bézier curve and additional drawing/text tools.
  • Drawing Cubic Bézier Curves explained by using Flash Actionscript
  • 3rd order Bézier Curves applet
  • Living Math Bézier applet
  • Living Math Bézier applets of different spline types, Java programming of splines in An Interactive Introduction to Splines
  • From Bézier to Bernstein Feature Column from American Mathematical Society
  • Bézier Curves demo using Flash Actionscript
  • Bézier Curves drawer using C/Opengl
  • Online experiments with the open source JavaScript library JSXGraph
  • A full Bézier Curve Primer with interactive graphics (javascript)
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap