This is an old revision of the document!
Einleitende Theorie
Wir werden im folgenden Punkte im Raum mit deren Ortsvektoren gleichsetzen und als mathematische Objekte nicht mehr unterscheiden, sondern einfach als Elemente von $\mathbb{R}^3$, die Menge aller geordneten Tripel von reellen Zahlen betrachten.
Linearkombination
Gegeben ist eine Menge $V$ von (abstrakten) “Vektoren”, d.h. Dinge, die man addieren und skalieren (mit einer reellen Zahl multiplizieren) kann. Typische Beispiele:
- Vektoren (aus der Vektorgeometrie)
- Funktionen (z.B. Polynome)
Eine Linearkombination von “Vektoren” ist eine Summe von reellen Vielfachen dieser “Vektoren”: $$ r_1 v_1 + r_2 v_2 + \ldots r_n v_n \qquad \qquad \text{mit } r_i \in \mathbb{R} \text{ und } v_i \in V $$
Beispiele:
- Die Menge aller Linearkombinationen der Einheitsvektoren ergibt alle möglichen Vektoren. Man sagt, die Einheitsvektoren bilden eine Basis.
- Die Menge aller Linearkombinationen der Polynome $1,\, x,\, x^2$ ist die Menge aller möglichen Polynome bis und mit 2. Grades.
Konvexe Kombinationen
Ein konvexe Kombination ist eine Linearkombination mit der zusätzlichen Bedingung, dass die Koeffizienten $r_i$ die Bedingungen $\sum_i r_i =1$ und $r_i \in [0,1]$ erfüllen.
Aufgaben
Geometrische Interpretation
Seien $\vec u$ und $\vec v$ Vektoren im Raum. Welchen Punktemengen entspricht
a) die Menge aller Linearkombinationen von $\vec u$ und $\vec v$?
b) die Menge aller konvexen Kombinationen von $\vec u$ und $\vec v$?
c) die Menge aller Linearkombinationen von $\vec v$?
d) die Menge aller konvexen Kombination von $\vec v$?
e) die Menge aller konvexen Kombinationen von 3 Vektoren im Raum?
Wiederholte Kombinationen
Beweisen Sie dass
- die Linearkombination von Linearkombinationen eine einfache Linearkombination ist.
- die konvexe Kombination von konvexen Kombinationen eine einfache konvexe Kombination ist.
Geometrische Definition von Bezierkurven
Eine Bezierkurve $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.
Grad 1
Die Bezierkurve vom Grad 1 mit den Kontrollpunkten $p_0$ und $p_1$ entspricht der Menge aller konvexen Kombinationen der beiden Punkte.
Bestimmen Sie eine Parametrierung dieser “Kurve”: $$ p(t) = \text{Formel mit $p_0$, $p_1$ und $t$} =: I(t, p_0, p_1) $$ Die Funktion $I$ interpoliert linear zwischen $p_0$ und $p_1$ für $t \in [0,1]$.
Aufgaben
Animation
Programmieren Sie eine Animation (ca. 50 Schritte), wie der Punkt $p(t)$ läuft.
Verwenden Sie dazu die bereitgestellte Vector-Bibliothek (die die gleichen Methoden wie die entsprechende Bibliothek in Blender zur Verfügung stellt). Starten Sie Ihr Programm wie folgt:
- interpolation.py
from gpanel import * from vector import Vector # Die Datei vector.py muss im gleichen Verzeichnis wie diese Programm liegen. makeGPanel(0,2,0,2) # # Hier fehlt die Definition einer oder mehrerer Funktionen # n = 100 enableRepaint(False) intpts = [] for i in range(n+1): t=n/i clear() # # Punkt p(t) berechnen und Situation schön anzeigen # repaint() delay(60)
Grad 2, quadratische Bezierkurve (habe ich selten angetroffen)
Gegeben sind 3 Kontrollpunkte $p_0$, $p_1$, $p_2$. Der Kuvenpunkt $p(t)$ wird wie folgt berechnet:
- Man berechne $q_i(t) = I(p_i, p_{i+1},t)$ für $i\in \{0,1\}$. Und daraus
- $p(t) = I(q_0, q_1, t)$
Aufgaben
Konvexe Hülle
Zeigen Sie, dass $p(t)$ immer im Dreieck $p_0$, $p_1$, $p_2$ liegt.
Tangenten
Begründen Sie plausibel, wie die Tangenten in den Punkten $p(0)$, $p(0.5)$ und $p(1)$ liegen.
Animation
Programmieren Sie eine Animation (ca. 50 Schritte), wie der Punkt $p(t)$ läuft.
Grad 3, kubische Bezierkurve (treffe ich häufig an)
Gegeben sind 4 Kontrollpunkte $p_i$ mit $i\in\{0,1,2,3\}$. Der Punkt $p(t)$ wird wie folgt berechnet:
Aufgaben
Animation
Programmieren Sie eine Animation (ca. 50 Schritte), wie der Punkt $p(t)$ läuft.
Grad $n$ (wird selten für $n>3$ verwendet)
Gegeben sind $n+1$ Kontrollpunkte $p_i$ mit $i \in \{0,1,\ldots, n,n+1\}$.
Aufgabe *
Die entsprechende Animation kann für beliebige $n$ sehr elegant rekursiv programmiert werden.
Algebraische Form
Bestimmen Sie die algebraische Form der Bezierkurven von Grad 1,2,3 (und $n$, wer möchte), und zwar als konvexe Kombination der Kontrollpunkte mit den Koeffizienten als Polynome in $t$.