Computergrafik
wikipedia.org
Algorithmus von De Casteljau
← Bezier Curves | ● | Bezier Patches →
Konstruktion des BezierPunktes B=F(t):
- Idee: Wir teilen die Verbindungslinien (P0,P1),(P1,P2),(P2,P3), usw. zwischen den Kontrollpunkten grafisch prozentual gemäß dem Parameter t.
- Mit dem Parameter t die Strecken, definiert durch n Kontrollpunkte, im Verhältnis t:1−t teilen (Beispiel: bei t=0,5 teilen wir die Strecke in zwei gleich große Teile).
- Die so erzeugten Punkte ergeben eine neue Serie von n−1 Kontrollpunkten und n−2 Strecken.
- Solange wiederholen bis ein Punkt übrig bleibt.

Siehe auch wikipedia.
Rekurrenz für kubische Bezierkurven (n=3):
Die Punkte P0, Q0, R0, B0 und die Punkte B0, R1, Q2, P3 sind die Kontrollpunkte für zwei neue kubische Bezierkurven (d.h. eine links und eine rechts des Punktes B0). Zur besseren Übersicht nochmal visuell:

Rekursiver Zeichenalgorithmus via Kurvenhalbierung:
drawcurve(p0,p1,p2,p3) { if (|p0-p3|<eps) drawline(p0,p3); else { q0=(p0+p1)/2; q1=(p1+p2)/2; q2=(p2+p3)/2; r0=(q0+q1)/2; r1=(q1+q2)/2; b=(r0+r1)/2; drawcurve(p0,q0,r0,b); drawcurve(b,r1,q2,p3); } }
Q Kann man mit kubischen Bezierkurven ein Kreissegment darstellen?
Nein, dazu benötigt man rationale Bezierkurven. Siehe dazu eine grafische Erklärung auf StackOverflow.
← Bezier Curves | ● | Bezier Patches →