Computergrafik

Bezier Curves

Parametrische Oberflächen | | De Casteljau

Basisfunktionen $B_n(x)$ nicht Monome $x^n$

Bezier: Bernstein Polynom

$B_i^n(t) = \left( \begin{array}{c} n \\ i \end{array} \right) (1-t)^{n-i} t^i$

mit Binomialkoeffizient $\left( \begin{array}{c} n \\ i \end{array} \right) = \frac{n!}{i!(n-i)!}$

wikipedia.org

Kontrollpunkte $P_i$ definieren das Kontrollpolygon einer Bezierkurve vom Grad $n$:

Kurve: $F(t) = \sum_{i=0}^n P_i B_i^n(t), \quad t\in[0,1]$

wikipedia.org

Eigenschaften:

  • Die Kurve liegt innerhalb der konvexen Hülle des Kontrollpolygons
    • Die Bernsteinpolynome vom Grad $n$ summieren sich zu 1: $\sum_{i=0}^n B_i^n(t) = 1$
    • Beispiel für die Zerlegung der Bernsteinpolynome vom Grad $n=4$:
  • Die Kurve geht durch den ersten $P_0$ und letzten $P_n$ Kontrollpunkt
  • Die Tangente am Beginn und Ende der Kurve zeigt auf den zweiten und zweitletzten Kontrollpunkt

Beispiel kubische Bezierkurve, d.h. Grad $n=3$:

$ F(t) = \sum_{i=0}^3 \left( \begin{array}{c} 3 \\ i \end{array} \right) t^i (1-t)^{3-i} P_i = $

$ = (1-t)^3P_0+3t(1-t)^2P_1+3t^2(1-t)P_2+t^3P_3 = $
$ = (-P_0 + 3P_1 -3P_2 + P_3) t^3 + (3P_0 - 6P_1 + 3P_2) t^2 + (-3P_0 + 3P_1) t + P_0$
$t \in [0,1]$

Wir erhalten nun einen bestimmten Punkt auf der Kurve, wenn wir den Parameter $t$ auswerten, also in die Formel einsetzen.

$t=0$: $ F(t=0) = P_0$

$t=0,5$: $ F(t=0,5) = (0,5)^3P_0+3\cdot 0,5 \cdot(0,5)^2P_1+3\cdot 0,5 \cdot^2(0,5)P_2+(0,5)^3P_3$

$t=1$: $ F(t=1) = P_3$

Eine großartige Tutorialseite mit vielen interaktiven Beispielen bietet das Buch “A Primer on Bézier Curves” von Pomax: https://pomax.github.io/bezierinfo/

Parametrische Oberflächen | | De Casteljau

Options: