kurse:ef05a-2021:kurven:bezier-speed-and-interpolation

Geschwindigkeitsvektoren der Bezierkurve

Gegeben sind 4 Kontrollpunkte $\vec p_0$ bis $\vec p_3$ einer kubischen Bezierkurve. Die Parametrierung der Kurve ist wie folgt:

$$ \vec p(t) = (1-t)^3 \cdot \vec p_0 + 3(1-t)^2t \cdot \vec p_1 + 3 \cdot (1-t)t^2 \cdot \vec p_2 + t^3 \cdot \vec p_3 $$

Als Ableitung erhält man den Geschwindigkeitsvektor $\vec v(t)$ (wobei $t$ hier der Zeit in $[0,1]$ entspricht). $$ v(t) = -3(1-t)^2 \cdot \vec p_0 + 3(1-t)(1-3t)\cdot \vec p_1 + 3t(2-3t) \cdot \vec p_2 + 3t^2 \cdot \vec p_3 $$

Man findet $\vec v(0) = 3(\vec p_1 - \vec p_0)$, also Tangente parallel zu $P_0P_1$. Analog mit $\vec v(1) = 3(\vec p_3 - \vec p_2)$.

D.h. also, dass man aus Start- und Endpunkt und den entsprechenden Geschwindigkeitsvektoren die Kontrollpunkte berechnen kann:

$$ \vec p_1 = \vec p_0 + \frac{1}{3}\vec v(0)$$ und $$ \vec p_2 = \vec p_3 - \frac{1}{3}\vec v(1)$$

$\vec v(t)$ ist eine Bezierkurve 2. Grades. Der Kontrollpunkt könnte analog wie oben mit der 2. Ableitung (Beschleunigung) berechnet werden.

$$\vec a(t) = -6\,\vec p_2\,\left(3\,t-1\right)+6\,\vec p_1\,\left(3\,t-2\right)+6\,\vec p_3\,t-6\,\vec p_0\, \left(t-1\right) = t \left(6 \vec p_3 - 18 \vec p_2 + 18 \vec p_1 - 6 \vec p_0 \right) + \left(6\,\vec p_2-12\,\vec p_1+6\,\vec p_0 \right) $$

Interessant sind auch hier die Werte von $a(0)$ und $a(1)$: $$\vec a(0) = 6\,\vec p_2-12\,\vec p_1+6\,\vec p_0$$ $$\vec a(1) = 6\,\vec p_3-12\,\vec p_2+6\,\vec p_1$$

Beachten Sie, dass die Beschleunigungsvektorspitzen linear entlang einer Geraden laufen (wenn man die Beschleunigungsvektoren am Nullpunkt festmacht).

  • kurse/ef05a-2021/kurven/bezier-speed-and-interpolation.txt
  • Last modified: 2022/01/10 11:39
  • by Ivo Blöchliger