Eine Bezier-Kurve ist eine parametrische Kurve, deren Verlauf durch bestimmte Kontrollpunkte gegeben ist b0, b1 ... bn. Der erste und letzte Kontrollpunkt sind die jeweiligen Endpunkte der Kurve, die Zwischenpunkte liegen dabei nicht auf der Kurve und wirken sich auf den Kurvenverlauf aus. Die Basis die von einer Bezier-Kurve verwendet wird sin die Bernsteinpolynome, in unserem Beispiel von Grad 3. Dadurch hat eine Bezier-Kurve dieses als ihre Gewichtsfunktion und weißt folgende Eigenschaften auf
Der de Castlejau-Algorithmus ist eine sehr effiziente und numerische stabile Methode einen Punkt P auf einer Bezierkurve in einem Intervall t[0,1] zu berechnen. Die Gewichtung von t teilt dabei die Strecke von 2 Kontrollpunkten im Radius t:1-t ein. Die Funktionsweise vom de Castlejau-Algorithmus ist dabei die folgende, von den gegebenen Kontrollpunkten werden durch Lineare Interpolation, Zwischenpunkte bestimmt. Dieses Verfahren wird so lange rekursiv durch geführt bis nur noch ein Punkt vorhanden ist. Nach der 1.ten Iteration erhält man bei unserem Beispiel 3 Zwischenpunkte (hier grün dargestellt), diese werden nun auch wieder im Radius t:1-t geteilt, es ergeben sich 2 Zwischenpunkte (hier blau dargestellt). Nach einer weiteren Iteration erhält man nun einen Punkt(t) der auf der Bezierkurve liegt. Iteriert man nun über das Intervall t[0,1] und verbindet die hierbei enstehenden Punkte erhält man eine Bezier-Kurve (hier in rot dargestellt).
Wie der de-Castlejau-Algorithmus, sind die Bernsteinpolynome ein Weg um den Verlauf einer
Bezier-Kurve zu ermitteln. Bei gegebenen Kontrollpunkten und einen Parameter t erhält man
identische Ergebnisse egal welche Methode man verwendet. Da die Auswertung der Bernsteinpolynome
einen höheren Rechenaufwand benötigt wird die Methode des de-Castlejau bevorzugt. Der
De-Castlejau-Algorithmus lässt sich aus den Bernsteinpolynomen ableiten, er ist also
die rekursive Berechnung der Bernsteinpolynome. Durch Iteration der gegebenen Kontrollpunkte
\(b0(t) = b0, b1(t) = b1, b2(t) = b2, b3(t) = b3\)
ergeben sich die Bernsteinpolynome 3.Grades
\((1-t)^3 * b0 + 3 * t * (1-t)^2 + b1 + 3 * t^2 * (1-t) * b2 + t^3 * b3\)
Wenn man nun die gegebenen Kontrollpunkte in die einzelnen Basis-Bernsteinpolynome einsetzt und
diese dann addiert erhält man auch wieder einen Punkt P(t) im Bereich t[0,1] der auf der
gewünschten Bezier-Kurve liegt
Die einzelne Bernsteinpolynome sind: