Eine Bézierkurve $n$-ten Grades ist definiert durch $n+1$ Kontrollpunkte. Die einzelnen Punkte auf der Kurve lassen sich durch einen Parameter $t \in [0,1]$ parametrieren.
Die Bezierkurve vom Grad 1 mit den Kontrollpunkten $p_0$ und $p_1$ entspricht der Menge aller konvexen Kombinationen der beiden Punkte:
$$ p(t) = (1-t) \cdot p_0 + t \cdot p_1 =: I(t, p_0, p_1) $$ Die Funktion $I$ interpoliert linear zwischen $p_0$ und $p_1$ für $t \in [0,1]$.
Ziel ist es, komfortabel mit Vektoren arbeiten zu können. Insbesondere benötigen wir
Aktueller Code: vector-class.zip
Die Berechnung nimmt eine Liste von $n+1$ Punkten entgegen, und berechnet damit $n$ neue Punkte. Wenn $n=1$ ist man fertig, ansonsten reduziert man die Liste in gleicher Weise weiter.
Wir werden die allgemeine Formel formal herleiten.
Man kann dies auch direkt rechnerisch algebraisch tun, ist aber ziemlich mühsam. Und TR ist dafür, naja, bedingt zu gebrauchen.
Betrachtung der Polynome, die die einzelnen Punkte multiplizieren.
Mit Hilfe des TRs soll die explizite Formel für den Punkt $P(t)$ auf der kubischen Bezierkurve berechnet werden, die durch die 4 Punkte $a$, $b$, $c$, $d$ definiert wird.
expand()
.factor(ausdruck, a)
. Notieren Sie sich den Faktorx:[a,b,c,d]; i(t,a,b):=(1-t)*a+t*b; r(l):=makelist(i(t,l[i],l[i+1]), i, 1, length(l)-1); p:r(r(r(x)))[1]; create_list(factor(coeff(expand(p),v)),v,x);
Gegen ist die kubische Bézier-Kurve $p(t)$ durch die vier Kontrollpunkte $p_0$ bis $p_3$. Wir möchten hier die Ableitungen von $p(t)$ nach $t$ bestimmen und interpretieren.