1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

10
DVG3 - Bezier Kurven 1 Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000

Transcript of 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

Page 1: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DVG3 - Bezier Kurven 1

Kubische Bézier Kurven

Vortrag: Pascal Gbodogbe

25. 1. 2000

Page 2: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

2

Viele Graphik_Package sind aus kubischen Spline Funktion

abgeleitet.

Ziel: Polynom vom Grad drei in kubischen Bézierdarstellung.

Um dies zu erreichen benötige man diese vier Funktionen aus

kubischer Bézier_Kurven:

BEZ _ 0,3(x)=(1-x)^3

BEZ _ 1,3(x)=3*x(1-x)^2

BEZ _ 2,3(x)=3*(x^2)*(1-x)

BEZ _ 3,3(x)=x^3

Die Funktionen sind aus Bernsteinspolynom

BEZ_k,n(x)=C(n,k)*(x^k)*(1-x) ^(n-k) abgeleitet, wobei 0 <= x <= 1,

C(n,k)=n!/(k!)*(n-k)! und n = 3.

Page 3: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

3

Kubische Bézierdarstellung

P(x) sei ein belieges Polynom von Grad 3in kubische Bézier_kurve darzustellen P(x) = P0* BEZ _ 0,3(x) + P1* BEZ _ 1,3(x) + P2* BEZ _ 2,3(x) + P3* BEZ _ 3,3(x). EigenschaftenP(0) = P0P(1) = P3 , P3 entspricht P_n(=P mit Index n)P‘(0) = 3*(P1-P0) , entspricht P‘(0) = n*(P1-P0)P‘(1) = 3*(P3-P2) , entspricht P‘(1) = n*(P3-P2)P‘‘(0) = 6*[(P2-P1) - (P1-P0)] = 6*(P0-2*P1+P2) entspricht P‘‘(1) = n*(n-1)*[(P2-P1) - (P1-P0)] P‘‘(1) = 6*[(P1 - P2) - (P2 - P3)] = 6*(P1-2*P2+P3) entspricht P‘‘(1) = n*(n-1)*[(P_(n-2) - P_(n-1) ) - (P_(n-1) - P_(n))] P‘(= Erste Ableitung)P‘‘(=Zweite Ableitung)

Page 4: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

4

Bestimmung von koeffizienten P0,P1,P2 und P3

P0 = P(0)

P3 = P(1) , P3 entspricht P_n(=P mit Index n)

P1 = (1/3)*P‘(0) + P0

P2 = P3 - (1/3)* P‘(1)

Page 5: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

5

Graphische Darstellung

Um die Graphische Darstellung der Funktion zu realisieren,

wird 2D_Graphik benötigen.

Page 6: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

6

Einführung und Beispiele

Zusammenstellung der 2D_Graphik2D_Graphik klasse sind von Graphik klasse abgeleitet. 2D_Graphik enthält diese ElementePoint2D [{x,y}] Punkt mit den Koordinaten (x|y)

Line2D [{{x1,y1},…,{xn,yn}}] Polygonzug durch die Punkte (x1|y1) bis {x_n,y_n}Polygon2D [{{x1,y1},…,{x_n,y_n}}] Die vom Polygonzug durch die Punkte {x1,y1} bis {x_n,y_n}umschlossene Fläche wird ausgefülltCircle2D [{x,y},r] Kreis(Linie) mit Mittelpunkt (x|y) und Radius rCircle2D [{x,y},r,{winkel1,winkel2}] Kreisbogen mit Mittelpunkt (x|y) und Radius rCircle2D [{x,y},{r_x,r_y}] Ellipse mit Mittelpunkt (x|y) und Halbachsen r_x,r_yDisk2D [{x,y},r] Ausgefüllte Kreisscheibe mit Mittelpunkt (x|y) und Radius rDisk2D [{x,y},{r_x,r_y}] Ausgefüllte Ellipse

Page 7: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

7

• Rectangle [{xmin,ymin},{xmax,ymax}] Rechteck mit diagonalen Ecken in den angegebenen Punkten

• Text [“text“,{x,y}] Text, Zentrum des Textes ist im Punkt (x|y)• Text [“text“,{x,y},{±1, ±1}] Text, mit linken/rechtem bzw.

oberen /unterem Rand des Textes im Punkt (x|y)• Arrow[{xa,ya},{xe,ye}] zeichnet einen Pfeil (Vektor) mit

angegebenem Anfangs–und Endpunkt

Page 8: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

8

Affine Tranformation : Eine koordinatentransformation in dieser Form

x’= axxx + axyy +bx´ y’= ayxx + ayyy + by´ heißt eine 2D_Affinetransformation

jede der transformierte Koordinaten x’ und y’ ist eine lineare Funktion von der originalkoordinaten x und y, und parameter aij und bk sind Konstante , die von der transformationstyp bestimmt sind. Translation, Rotation und Skalierung sind einige beispiele der 2D_Affinetransformation

Page 9: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

9

Translation :Um original Koordinatenposition (x,y) in Position (x’,y’) verschieben zu können, benötige man eine Translation

Die Form lautet : x’= x + tx , y’= y + ty , wobei tx , ty Translationsabstande sind

Skalierung : Um die Dimension des Objektes möglich groß zu haben benötige man eine Skalierung in der Forme x’= x*sx , y’= y*sy , wobei sx , sy Skalierungsfaktor sind.

Page 10: 1DVG3 - Bezier Kurven Kubische Bézier Kurven Vortrag: Pascal Gbodogbe 25. 1. 2000.

DV

G3 - B

ezier Ku

rven

10

Rotation : Um original Polarkoordinatenposition(x,y) in Position

(x’,y’)rotieren zu lassen, benötige man eine Rotationin der Form

x’= r cos(u+v) = r cos(u)cos(v) - r sin(u)sin(v)

y’= r sin(u+v) = r sin(u)cos(v) + r sin(v)cos(u) , wobei (x,y) in Polarkoordinaten sind:

x = r cos(u), y = r sin(u)

D.h.: x’= x cos(v) - y sin(v) y’= x sin(v) +y cos(v)