Geometric Modeling - Exam.pdf

Geometric Modeling - Exam
Geometric Modeling - Exam Aufgabe 1) Lineare Algebra und ihre Anwendung in der Modellierung Betrachtet wird die Verwendung von linearen mathematischen Strukturen zur Lösung geometrischer Probleme, insbesondere in der Computergrafik und Animation. Du hast Kenntnisse aus folgenden Bereichen anzuwenden: Grundlagen: Vektorräume, Matrizen, Lineare Abbildungen Transformationen: Translation, Rotation, Sk...

© StudySmarter 2024, all rights reserved.

Geometric Modeling - Exam

Aufgabe 1)

Lineare Algebra und ihre Anwendung in der ModellierungBetrachtet wird die Verwendung von linearen mathematischen Strukturen zur Lösung geometrischer Probleme, insbesondere in der Computergrafik und Animation. Du hast Kenntnisse aus folgenden Bereichen anzuwenden:

  • Grundlagen: Vektorräume, Matrizen, Lineare Abbildungen
  • Transformationen: Translation, Rotation, Skalierung
  • Bilddarstellung: Homogene Koordinaten
  • Szenen: Modell-, Welt- und Ansichtskoordinaten
  • Lineare Gleichungssysteme: Lösen mittels Matrizen
  • Eigenwerte und Eigenvektoren: Analyse linearer Transformationen
  • Anwendungen: Computergrafik, Animation, Bildverarbeitung

b)

Ein Vektor

\mathbf{v} = \begin{pmatrix} 3 \ 4 \ 1 \end{pmatrix}
in homogenen Koordinaten wird durch eine Transformation beschrieben, die eine Skalierung um den Faktor 2 in x-Richtung und 3 in y-Richtung enthält. Bestimme die Transformationsmatrix T und berechne den resultierenden Vektor
\mathbf{v'} = T * \mathbf{v}
.

Lösung:

Subaufgabe:Ein Vektor

\mathbf{v} = \begin{pmatrix} 3 \ 4 \ 1 \end{pmatrix}
in homogenen Koordinaten wird durch eine Transformation beschrieben, die eine Skalierung um den Faktor 2 in x-Richtung und 3 in y-Richtung enthält. Bestimme die Transformationsmatrix T und berechne den resultierenden Vektor
\mathbf{v'} = T * \mathbf{v}
.Schritte zur Lösung:
  • Bestimmung der Transformationsmatrix T:
In homogenen Koordinaten ist die Transformationsmatrix für eine Skalierung wie folgt gegeben:
T = \begin{pmatrix} S_x & 0 & 0 \ 0 & S_y & 0 \ 0 & 0 & 1 \end{pmatrix}
wobei S_x der Skalierungsfaktor in x-Richtung und S_y der Skalierungsfaktor in y-Richtung ist.Für diese Aufgabe sind S_x = 2 und S_y = 3. Daher lautet die Transformationsmatrix T:
T = \begin{pmatrix} 2 & 0 & 0 \ 0 & 3 & 0 \ 0 & 0 & 1 \end{pmatrix}
  • Berechnung des resultierenden Vektors \(\mathbf{v'}\):
Wir berechnen nun das Produkt von T und \(\mathbf{v}\):
\mathbf{v'} = T * \mathbf{v} = \begin{pmatrix} 2 & 0 & 0 \ 0 & 3 & 0 \ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix} 3 \ 4 \ 1 \end{pmatrix}
Berechnen wir die einzelnen Einträge des resultierenden Vektors \(\mathbf{v'}\):
  • Der erste Eintrag: \(2 \times 3 + 0 \times 4 + 0 \times 1 = 6\)
  • Der zweite Eintrag: \(0 \times 3 + 3 \times 4 + 0 \times 1 = 12\)
  • Der dritte Eintrag: \(0 \times 3 + 0 \times 4 + 1 \times 1 = 1\)
Also ergibt sich der resultierende Vektor \(\mathbf{v'}\) wie folgt:
\mathbf{v'} = \begin{pmatrix} 6 \ 12 \ 1 \end{pmatrix}
Fazit:Die Transformationsmatrix T für die Skalierung ist:
T = \begin{pmatrix} 2 & 0 & 0 \ 0 & 3 & 0 \ 0 & 0 & 1 \end{pmatrix}
Der resultierende Vektor nach der Transformation ist:
\mathbf{v'} = \begin{pmatrix} 6 \ 12 \ 1 \end{pmatrix}

d)

Ein 3D-Punkt

\mathbf{p} = \begin{pmatrix} 1 \ 2 \ 3 \ 1 \end{pmatrix}
soll von Modellkoordinaten in Weltkoordinaten und dann in Ansichtskoordinaten transformiert werden. Gegeben seien die Transformationsmatrizen:
  • Modell-zu-Welt-Transformation
    T_{MW} = \begin{pmatrix} 1 & 0 & 0 & 3 \ 0 & 1 & 0 & 2 \ 0 & 0 & 1 & 5 \ 0 & 0 & 0 & 1 \end{pmatrix}
  • Welt-zu-Ansicht-Transformation
    T_{WA} = \begin{pmatrix} 1 & 0 & 0 & -3 \ 0 & 1 & 0 & -2 \ 0 & 0 & 1 & -5 \ 0 & 0 & 0 & 1 \end{pmatrix}
Bestimme die neuen Koordinaten des Punktes in den Welt- und dann in den Ansichtskoordinaten.

Lösung:

Subaufgabe:Ein 3D-Punkt

\mathbf{p} = \begin{pmatrix} 1 \ 2 \ 3 \ 1 \end{pmatrix}
soll von Modellkoordinaten in Weltkoordinaten und dann in Ansichtskoordinaten transformiert werden. Gegeben seien die Transformationsmatrizen:
  • Modell-zu-Welt-Transformation
    T_{MW} = \begin{pmatrix} 1 & 0 & 0 & 3 \ 0 & 1 & 0 & 2 \ 0 & 0 & 1 & 5 \ 0 & 0 & 0 & 1 \end{pmatrix}
  • Welt-zu-Ansicht-Transformation
    T_{WA} = \begin{pmatrix} 1 & 0 & 0 & -3 \ 0 & 1 & 0 & -2 \ 0 & 0 & 1 & -5 \ 0 & 0 & 0 & 1 \end{pmatrix}
Bestimme die neuen Koordinaten des Punktes in den Welt- und dann in den Ansichtskoordinaten.Schritte zur Lösung:
  • Transformation des Punktes von Modellkoordinaten in Weltkoordinaten:
Wir verwenden die Transformationsmatrix
T_{MW}
, um die neuen Koordinaten des Punktes
\mathbf{p}
in den Weltkoordinaten zu berechnen. Die Berechnung erfolgt durch Matrix-Vektor-Multiplikation:
\mathbf{p}_{W} = T_{MW} \cdot \mathbf{p}
Einsetzen der gegebenen Werte:
\mathbf{p}_{W} = \begin{pmatrix} 1 & 0 & 0 & 3 \ 0 & 1 & 0 & 2 \ 0 & 0 & 1 & 5 \ 0 & 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 1 \ 2 \ 3 \ 1 \end{pmatrix}
Berechnen wir die einzelnen Einträge des resultierenden Vektors
\mathbf{p}_{W}
:
\begin{align*} & [1 \times 1 + 0 \times 2 + 0 \times 3 + 3 \times 1] = 4 \ & [0 \times 1 + 1 \times 2 + 0 \times 3 + 2 \times 1] = 4 \ & [0 \times 1 + 0 \times 2 + 1 \times 3 + 5 \times 1] = 8 \ & [0 \times 1 + 0 \times 2 + 0 \times 3 + 1 \times 1] = 1 \end{align*}
Somit ergeben sich die neuen Koordinaten in Weltkoordinaten als:
\mathbf{p}_{W} = \begin{pmatrix} 4 \ 4 \ 8 \ 1 \end{pmatrix}
  • Transformation des Punktes von Weltkoordinaten in Ansichtskoordinaten:
Nun verwenden wir die Transformationsmatrix
T_{WA}
, um die neuen Koordinaten des Punktes
\mathbf{p}_{W}
in den Ansichtskoordinaten zu berechnen. Auch hier erfolgt die Berechnung durch Matrix-Vektor-Multiplikation:
\mathbf{p}_{A} = T_{WA} \cdot \mathbf{p}_{W}
Einsetzen der gegebenen Werte:
\mathbf{p}_{A} = \begin{pmatrix} 1 & 0 & 0 & -3 \ 0 & 1 & 0 & -2 \ 0 & 0 & 1 & -5 \ 0 & 0 & 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} 4 \ 4 \ 8 \ 1 \end{pmatrix}
Berechnen wir die einzelnen Einträge des resultierenden Vektors
\mathbf{p}_{A}
:
\begin{align*} & [1 \times 4 + 0 \times 4 + 0 \times 8 + (-3) \times 1] = 4 - 3 = 1 \ & [0 \times 4 + 1 \times 4 + 0 \times 8 + (-2) \times 1] = 4 - 2 = 2 \ & [0 \times 4 + 0 \times 4 + 1 \times 8 + (-5) \times 1] = 8 - 5 = 3 \ & [0 \times 4 + 0 \times 4 + 0 \times 8 + 1 \times 1] = 1 \end{align*}
Somit ergeben sich die neuen Koordinaten in Ansichtskoordinaten als:
\mathbf{p}_{A} = \begin{pmatrix} 1 \ 2 \ 3 \ 1 \end{pmatrix}
Fazit:Die neuen Koordinaten des Punktes in den Weltkoordinaten sind
\mathbf{p}_{W} = \begin{pmatrix} 4 \ 4 \ 8 \ 1 \end{pmatrix}
und in den Ansichtskoordinaten sind
\mathbf{p}_{A} = \begin{pmatrix} 1 \ 2 \ 3 \ 1 \end{pmatrix}
.

Aufgabe 2)

Transformationen und Matrizenoperationen: Gegeben sei eine 2D-Grafik, die mehrere Punkte beinhaltet. Es sollen verschiedene Transformationen ausgeführt werden, wobei die Operationen zu kombinieren sind. Die Startpunkte sind in homogenen Koordinaten dargestellt. Verwende die Matrixmultiplikation, um die Transformationen zu kombinieren. Berücksichtige die Notwendigkeit der inversen Transformation bei einigen Operationen. Folgende Transformationen sind gegeben:

  • Translation um den Vektor \( \begin{pmatrix} 3 \ 2 \ 1 \end{pmatrix} \)
  • Rotation um 45 Grad gegen den Uhrzeigersinn
  • Skalierung mit dem Faktor 2

a)

Berechne die Transformationsmatrix für die Translation. Notiere die Matrix und erkläre deren Anwendung auf einen Punkt \(P(1, 1, 1)\) im homogenen Koordinatensystem.

Lösung:

Transformationen und Matrizenoperationen:

  • Translation um den Vektor \( \begin{pmatrix} 3 \ 2 \ 1 \end{pmatrix} \)
  • Rotation um 45 Grad gegen den Uhrzeigersinn
  • Skalierung mit dem Faktor 2
Subexercise: Berechne die Transformationsmatrix für die Translation.Translation im homogenen Koordinatensystem erfolgt durch Hinzufügen eines Translationsvektors zur Position jedes Punktes. Dies wird in Form einer 3x3-Matrix im homogenen Koordinatensystem dargestellt. Der Translationsvektor ist \( \begin{pmatrix} 3 \ 2 \ 1 \end{pmatrix} \). Die Translationsmatrix T ist: \[ T = \begin{pmatrix} 1 & 0 & 3 \ 0 & 1 & 2 \ 0 & 0 & 1 \end{pmatrix} \] Diese Matrix verschiebt jeden Punkt im 2D-Raum um (3,2). Weiterhin wenden wir diese Matrix auf einen Punkt P(1, 1, 1) im homogenen Koordinatensystem an. \[ P' = T \cdot P = \begin{pmatrix} 1 & 0 & 3 \ 0 & 1 & 2 \ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix} = \begin{pmatrix} 1 \cdot 1 + 0 \cdot 1 + 3 \cdot 1 \ 0 \cdot 1 + 1 \cdot 1 + 2 \cdot 1 \ 0 \cdot 1 + 0 \cdot 1 + 1 \cdot 1 \end{pmatrix} = \begin{pmatrix} 4 \ 3 \ 1 \end{pmatrix} \] Erklärung:
  • Die erste Zeile der Matrixmultiplikation ergibt 1*1 + 0*1 + 3*1 = 4. Das ist die neue x-Koordinate des Punktes P'.
  • Die zweite Zeile der Matrixmultiplikation ergibt 0*1 + 1*1 + 2*1 = 3. Das ist die neue y-Koordinate des Punktes P'.
  • Die dritte Zeile der Matrix bleibt unverändert, da wir im homogenen Raum arbeiten.

b)

Berechne die Transformationsmatrix für die Rotation um 45 Grad gegen den Uhrzeigersinn. Notiere die Matrix und erkläre deren Anwendung auf denselben Punkt \(P(1, 1, 1)\).

Lösung:

Transformationen und Matrizenoperationen:

  • Translation um den Vektor \( \begin{pmatrix} 3 \ 2 \ 1 \end{pmatrix} \)
  • Rotation um 45 Grad gegen den Uhrzeigersinn
  • Skalierung mit dem Faktor 2
Subexercise: Berechne die Transformationsmatrix für die Rotation um 45 Grad gegen den Uhrzeigersinn.Die Rotationsmatrix für eine Rotation um den Ursprung um einen Winkel \( \theta \) gegen den Uhrzeigersinn ist gegeben durch: \[ R(\theta) = \begin{pmatrix} \cos \theta & -\sin \theta & 0 \ \sin \theta & \cos \theta & 0 \ 0 & 0 & 1 \end{pmatrix} \] Da der Winkel \( \theta \) 45 Grad beträgt, setzen wir \( \theta = 45^\circ \). Die Werte für \( \cos 45^\circ \) und \( \sin 45^\circ \) sind beide \( \frac{\sqrt{2}}{2} \). Somit ist die Rotationsmatrix: \[ R(45^\circ) = \begin{pmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & 0 \ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 \ 0 & 0 & 1 \end{pmatrix} \] Jetzt wenden wir diese Matrix auf den Punkt \( P(1, 1, 1) \) im homogenen Koordinatensystem an. \[ P' = R(45^\circ) \cdot P = \begin{pmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & 0 \ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 \ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix} = \begin{pmatrix} \frac{\sqrt{2}}{2} \cdot 1 + -\frac{\sqrt{2}}{2} \cdot 1 + 0 \cdot 1 \ \frac{\sqrt{2}}{2} \cdot 1 + \frac{\sqrt{2}}{2} \cdot 1 + 0 \cdot 1 \ 0 \cdot 1 + 0 \cdot 1 + 1 \cdot 1 \end{pmatrix} = \begin{pmatrix} 0 \ \sqrt{2} \ 1 \end{pmatrix} \] Erklärung:
  • Die erste Zeile der Matrixmultiplikation ergibt \( \frac{\sqrt{2}}{2} \cdot 1 + -\frac{\sqrt{2}}{2} \cdot 1 + 0 \cdot 1 = 0 \). Das ist die neue x-Koordinate des Punktes P'.
  • Die zweite Zeile der Matrixmultiplikation ergibt \( \frac{\sqrt{2}}{2} \cdot 1 + \frac{\sqrt{2}}{2} \cdot 1 + 0 \cdot 1 = \sqrt{2} \). Das ist die neue y-Koordinate des Punktes P'.
  • Die dritte Zeile der Matrix bleibt unverändert, da wir im homogenen Raum arbeiten.

c)

Berechne die Transformationsmatrix für die Skalierung mit dem Faktor 2. Notiere die Matrix und erkläre deren Anwendung auf den Punkt \(P(1, 1, 1)\).

Lösung:

Transformationen und Matrizenoperationen:

  • Translation um den Vektor \( \begin{pmatrix} 3 \ 2 \ 1 \end{pmatrix} \)
  • Rotation um 45 Grad gegen den Uhrzeigersinn
  • Skalierung mit dem Faktor 2
Subexercise: Berechne die Transformationsmatrix für die Skalierung mit dem Faktor 2.Im homogenen Koordinatensystem wird die Skalierung durch eine Diagonalmatrix dargestellt. Der Skalierungsfaktor beträgt 2, also lautet die Skalierungsmatrix S: \[ S = \begin{pmatrix} 2 & 0 & 0 \ 0 & 2 & 0 \ 0 & 0 & 1 \end{pmatrix} \] Diese Matrix verdoppelt die x- und y-Koordinaten jedes Punktes im 2D-Raum. Nun wenden wir die Matrix auf den Punkt \( P(1, 1, 1) \) im homogenen Koordinatensystem an. \[ P' = S \cdot P = \begin{pmatrix} 2 & 0 & 0 \ 0 & 2 & 0 \ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix} = \begin{pmatrix} 2 \cdot 1 + 0 \cdot 1 + 0 \cdot 1 \ 0 \cdot 1 + 2 \cdot 1 + 0 \cdot 1 \ 0 \cdot 1 + 0 \cdot 1 + 1 \cdot 1 \end{pmatrix} = \begin{pmatrix} 2 \ 2 \ 1 \end{pmatrix} \] Erklärung:
  • Die erste Zeile der Matrixmultiplikation ergibt \( 2 \cdot 1 + 0 \cdot 1 + 0 \cdot 1 = 2 \). Das ist die neue x-Koordinate des Punktes P'.
  • Die zweite Zeile der Matrixmultiplikation ergibt \( 0 \cdot 1 + 2 \cdot 1 + 0 \cdot 1 = 2 \). Das ist die neue y-Koordinate des Punktes P'.
  • Die dritte Zeile der Matrix bleibt unverändert, da wir im homogenen Raum arbeiten.

d)

Kombiniere die drei Transformationsmatrizen zu einer Gesamtmatrix. Wende diese Gesamtmatrix auf den Punkt \(P(1, 1, 1)\) an und gib die finalen Koordinaten des transformierten Punktes an. Zeige alle Schritte der Matrixmultiplikation.

Lösung:

Transformationen und Matrizenoperationen:

  • Translation um den Vektor \( \begin{pmatrix} 3 \ 2 \ 1 \end{pmatrix} \)
  • Rotation um 45 Grad gegen den Uhrzeigersinn
  • Skalierung mit dem Faktor 2
Subexercise: Kombiniere die drei Transformationsmatrizen zu einer Gesamtmatrix.Wir haben die folgenden Transformationsmatrizen:
  • Translationsmatrix T: \[ T = \begin{pmatrix} 1 & 0 & 3 \ 0 & 1 & 2 \ 0 & 0 & 1 \end{pmatrix} \]
  • Rotationsmatrix R (45 Grad gegen den Uhrzeigersinn): \[ R = \begin{pmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & 0 \ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 \ 0 & 0 & 1 \end{pmatrix} \]
  • Skalierungsmatrix S (Faktor 2): \[ S = \begin{pmatrix} 2 & 0 & 0 \ 0 & 2 & 0 \ 0 & 0 & 1 \end{pmatrix} \]
Kombinieren der Matrizen: Zunächst multiplizieren wir die Skalierungsmatrix S mit der Rotationsmatrix R: \[ S \cdot R = \begin{pmatrix} 2 & 0 & 0 \ 0 & 2 & 0 \ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & 0 \ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 \ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 2 \cdot \frac{\sqrt{2}}{2} & 2 \cdot -\frac{\sqrt{2}}{2} & 0 \ 2 \cdot \frac{\sqrt{2}}{2} & 2 \cdot \frac{\sqrt{2}}{2} & 0 \ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} \sqrt{2} & -\sqrt{2} & 0 \ \sqrt{2} & \sqrt{2} & 0 \ 0 & 0 & 1 \end{pmatrix} \] Nun nehmen wir diese resultierende Matrix und multiplizieren sie mit der Translationsmatrix T: \[ T \cdot (S \cdot R) = \begin{pmatrix} 1 & 0 & 3 \ 0 & 1 & 2 \ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} \sqrt{2} & -\sqrt{2} & 0 \ \sqrt{2} & \sqrt{2} & 0 \ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 \cdot \sqrt{2} + 0 \cdot \sqrt{2} + 3 \cdot 0 & 1 \cdot -\sqrt{2} + 0 \cdot \sqrt{2} + 3 \cdot 0 & 1 \cdot 0 + 0 \cdot 0 + 3 \cdot 1 \ \sqrt{2} \cdot 1 + \sqrt{2} \cdot 0 + 2 \cdot 0 & \sqrt{2} \cdot 1 + \sqrt{2} \cdot 0 + 2 \cdot 0 & \sqrt{2} \cdot 0 + \sqrt{2} \cdot 0 + 2 \cdot 1 \ 0 \cdot \sqrt{2} + 0 \cdot \sqrt{2} + 1 \cdot 0 & 0 \cdot -\sqrt{2} + 0 \cdot \sqrt{2} + 1 \cdot 0 & 0 \cdot 0 + 0 \cdot 0 + 1 \cdot 1 \end{pmatrix} = \begin{pmatrix} \sqrt{2} & -\sqrt{2} & 3 \ \sqrt{2} & \sqrt{2} & 2 \ 0 & 0 & 1 \end{pmatrix} \] Wende die Gesamtmatrix auf den Punkt \( P(1, 1, 1) \) an: \[ P'' = T \cdot (S \cdot R) \cdot P = \begin{pmatrix} \sqrt{2} & -\sqrt{2} & 3 \ \sqrt{2} & \sqrt{2} & 2 \ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix} = \begin{pmatrix} \sqrt{2} \cdot 1 + -\sqrt{2} \cdot 1 + 3 \cdot 1 \ \sqrt{2} \cdot 1 + \sqrt{2} \cdot 1 + 2 \cdot 1 \ 0 \cdot 1 + 0 \cdot 1 + 1 \cdot 1 \end{pmatrix} = \begin{pmatrix} \sqrt{2} - \sqrt{2} + 3 \ \sqrt{2} + \sqrt{2} + 2 \ 1 \end{pmatrix} = \begin{pmatrix} 3 \ 2\sqrt{2} + 2 \ 1 \end{pmatrix} \] Endgültige Koordinaten des transformierten Punktes: Die finalen Koordinaten des transformierten Punktes \(P(1, 1, 1)\) sind:
  • x: 3
  • y: \(2\sqrt{2} + 2\)
  • z: 1

Aufgabe 3)

Spline-Kurven und -FlächenSpline-Kurven und -Flächen werden im Geometric Modeling verwendet, um glatte und flexible Formen zu erstellen. Die Basisfunktionen sind B-Splines. Eine Spline-Kurve kann durch ihre Parameterdarstellung ausgedrückt werden:

  • Basisfunktion: B-Splines
  • Parameterdarstellung: \(\mathbf{C}(u) = \sum_{i=0}^{n} N_{i,k}(u) \mathbf{P}_i\)
  • Kontrollpunkte: \(\mathbf{P}_i\)
  • Knotenvektor: definiert die Parameterbereiche
  • Glättung: hohe Kontinuität \(C^k\)
  • NURBS (Non-Uniform Rational B-Splines) : Erweiterung für gleichmäßige Skalierung
  • Anwendungen: CAD, Animation, Grafik

b)

Erkläre den Unterschied zwischen B-Splines und NURBS (Non-Uniform Rational B-Splines). Gehe dabei auf die Gleichung einer NURBS-Kurve ein: \(\mathbf{C}(u) = \frac{\sum_{i=0}^{n} N_{i,k}(u) w_i \mathbf{P}_i}{\sum_{i=0}^{n} N_{i,k}(u) w_i}\). In welchen Szenarien sind NURBS besonders nützlich im Vergleich zu herkömmlichen B-Splines?

Lösung:

Unterschied zwischen B-Splines und NURBS

  • B-Splines:
    • B-Splines (Basis-Splines) sind eine Methode zur Darstellung von Kurven und Flächen durch Kontrolle eines Satzes von Punkten, die Kontrollpunkte genannt werden.
    • Die Gleichung einer B-Spline-Kurve ist gegeben durch:\[ \mathbf{C}(u) = \sum_{i=0}^{n} N_{i,k}(u) \mathbf{P}_i \]
    • Hierbei sind \(N_{i,k}(u)\) die B-Spline-Basisfunktionen und \(\mathbf{P}_i\) die Kontrollpunkte.
    • B-Splines bieten eine hohe Kontinuität \(C^k\), was zu glatten Kurven und Flächen führt.
  • NURBS:
    • Non-Uniform Rational B-Splines (NURBS) sind eine Erweiterung der B-Splines, die rational sind und Gewichte \(w_i\) beinhalten.
    • Die Gleichung einer NURBS-Kurve lautet:\[ \mathbf{C}(u) = \frac{\sum_{i=0}^{n} N_{i,k}(u) w_i \mathbf{P}_i}{\sum_{i=0}^{n} N_{i,k}(u) w_i} \]
    • Hierbei sind \(w_i\) die Gewichte der Kontrollpunkte \(\mathbf{P}_i\). Durch die Gewichte können die Kontrollpunkte mehr oder weniger Einfluss auf die Form der Kurve haben.
    • NURBS bieten zusätzliche Flexibilität im Vergleich zu herkömmlichen B-Splines, insbesondere bei der Darstellung und Skalierung von Formen.
  • Szenarien, in denen NURBS besonders nützlich sind:
    • Rationalität: NURBS können exakt konische Abschnitte wie Kreise, Ellipsen, Parabeln und Hyperbeln darstellen, die mit herkömmlichen B-Splines nicht exakt dargestellt werden können.
    • Gewichtung: Die Fähigkeit, Gewichte zu verwenden, ermöglicht eine präzisere Kontrolle über die Form der Kurve oder Fläche, insbesondere bei der Feinabstimmung und Anpassung komplexer Geometrien.
    • Industrieanwendungen: In CAD-Anwendungen, in denen präzise Geometrie benötigt wird, sind NURBS besonders nützlich. Sie werden häufig in Automobil-, Luftfahrt- und Schiffbauindustrien verwendet.
    • Animation und Grafik: NURBS sind in der Computergrafik und Animation weit verbreitet, da sie die Erzeugung realistischer und komplexer Oberflächen ermöglichen.

    Aufgabe 4)

    NURBS (Nicht-uniforme rationale B-Splines) sind mathematische Darstellungen, die zum Erstellen und Darstellen von Kurven und Flächen in der Computergrafik verwendet werden.

    • NURBS-Kurve:

      NURBS-Kurve:

    • NURBS-Fläche: S(u,v) =

      NURBS-Fläche:

    • N
    • Knotenvektor: Knotenvektor:
    • B-Spline-Basisfunktionen
    • NURBS-Kurve:

    • B

    a)

    Berechne die NURBS-Kurve C(u), gegeben durch:

    • Kontrollpunkte: P_0 = (1, 1), P_1 = (2, 0), P_2 = (3, 3)
    • Gewichte: w_0 = 1, w_1 = 2, w_2 = 1
    • Knotenvektor: [0, 0, 0, 1, 1, 1]
    • B-Spline-Basisfunktionen:
      • N_0,2(u) = (1-u)^2 / 2
      • N_1,2(u) = 2 * u * (1-u)
      • N_2,2(u) = u^2 / 2

    Bestimme die NURBS-Kurve C(u) für u = 0.5.

    Lösung:

    Um die NURBS-Kurve C(u) zu berechnen, verwenden wir die folgende Formel:

    C(u) = \( \frac{\sum_{i=0}^{n} N_{i,p}(u) \cdot P_i \cdot w_i}{\sum_{i=0}^{n} N_{i,p}(u) \cdot w_i} \)

    Unsere gegebenen Parameter sind:

    • Kontrollpunkte: P_0 = (1, 1), P_1 = (2, 0), P_2 = (3, 3)
    • Gewichte: w_0 = 1, w_1 = 2, w_2 = 1
    • Knotenvektor: [0, 0, 0, 1, 1, 1]
    • B-Spline-Basisfunktionen:
      • N_0,2(u) = \( \frac{(1-u)^2}{2} \)
      • N_1,2(u) = 2 * u * (1-u)
      • N_2,2(u) = \( \frac{u^2}{2} \)

    Wir wollen die NURBS-Kurve C(u) für u = 0.5 berechnen.

  1. Zuerst berechnen wir die Basisfunktionen bei u = 0.5:
  • N_0,2(0.5) = \( \frac{(1-0.5)^2}{2} \) = \( \frac{0.25}{2} \) = 0.125
  • N_1,2(0.5) = 2 * 0.5 * (1-0.5) = 2 * 0.5 * 0.5 = 0.5
  • N_2,2(0.5) = \( \frac{0.5^2}{2} \) = \( \frac{0.25}{2} \) = 0.125
  • Als nächstes berechnen wir den Zähler der NURBS-Formel:
  • \( \sum_{i=0}^{2} N_{i,2}(0.5) \cdot P_i \cdot w_i \)

    = 0.125 * (1, 1) * 1 + 0.5 * (2, 0) * 2 + 0.125 * (3, 3) * 1

    = (0.125, 0.125) + (2, 0) + (0.375, 0.375)

    = (2.5, 0.5)

  • Dann berechnen wir den Nenner der NURBS-Formel:
  • \( \sum_{i=0}^{2} N_{i,2}(0.5) \cdot w_i \)

    = 0.125 * 1 + 0.5 * 2 + 0.125 * 1

    = 0.125 + 1 + 0.125

    = 1.25

  • Schließlich berechnen wir C(0.5):
  • \( C(0.5) = \frac{(2.5, 0.5)}{1.25} = (2, 0.4) \)

    Die NURBS-Kurve C(u) für u = 0.5 ist somit C(0.5) = (2, 0.4).

    b)

    Unter Verwendung der zuvor berechneten Ergebnisse für C(u), zeige, wie sich die Verwendung eines nicht-uniformen Knotenvektors auf die Form der Kurve auswirkt.

    Vergleiche die Ergebnisse für einen gleichmäßig verteilten Knotenvektor [0, 0.33, 0.66, 1].

    Lösung:

    Um den Einfluss eines nicht-uniformen Knotenvektors auf die Form der NURBS-Kurve zu zeigen, vergleichen wir die Ergebnisse für den ursprünglichen, nicht-uniformen Knotenvektor [0, 0, 0, 1, 1, 1] und einen gleichmäßig verteilten Knotenvektor [0, 0.33, 0.66, 1].

    Wir haben bereits die NURBS-Kurve C(u) für den nicht-uniformen Knotenvektor [0, 0, 0, 1, 1, 1] und u = 0.5 berechnet und die Ergebnisse waren:

    • C(0.5) = (2, 0.4)

    Für den gleichmäßig verteilten Knotenvektor müssen wir die NURBS-Kurve neu berechnen.

    Schritt-für-Schritt-Berechnung:

    1. Die B-Spline-Basisfunktionen für den gleichmäßig verteilten Knotenvektor bei u = 0.5 berechnen:
    • N_0,2(u): Da der Knotenvektor nun [0, 0.33, 0.66, 1] ist, ändern sich die Intervalle der Basisfunktionen. Für 0 <= u < 0.33:
      • N_0,2(0.5) = 0, da 0.5 nicht innerhalb dieses Intervalls liegt.
    • N_1,2(u): Für 0.33 <= u < 0.66:
      • N_1,2(0.5) = 1 - ((0.5 - 0.33) / (0.66 - 0.33)) = 1 - (0.17 / 0.33) = 1 - 0.515 = 0.515
    • N_2,2(u): Für 0.66 <= u <= 1:
      • N_2,2(0.5) = (0.5 - 0.33) / (0.66 - 0.33) = 0.17 / 0.33 = 0.515
  • Die neuen Werte der Basisfunktionen lauten:
    • N_0,2(0.5) = 0
    • N_1,2(0.5) = 0.515
    • N_2,2(0.5) = 0.515
  • Berechnung des Zählers der NURBS-Formel:
  • \( \sum_{i=0}^{2} N_{i,2}(0.5) \cdot P_i \cdot w_i \)

    = 0 * (1, 1) * 1 + 0.515 * (2, 0) * 2 + 0.515 * (3, 3) * 1

    = (0, 0) + (2.06, 0) + (1.545, 1.545)

    = (3.605, 1.545)

  • Berechnung des Nenners der NURBS-Formel:
  • \( \sum_{i=0}^{2} N_{i,2}(0.5) \cdot w_i \)

    = 0 * 1 + 0.515 * 2 + 0.515 * 1

    = 0 + 1.03 + 0.515

    = 1.545

  • Berechnung der NURBS-Kurve C(0.5):
  • \( C(0.5) = \frac{(3.605, 1.545)}{1.545} \)

    = (2.33, 1)

    Zusammengefasst:

    • Für den nicht-uniformen Knotenvektor [0, 0, 0, 1, 1, 1] war C(0.5) = (2, 0.4)
    • Für den gleichmäßig verteilten Knotenvektor [0, 0.33, 0.66, 1] ist C(0.5) = (2.33, 1)

    Die Ergebnisse zeigen, dass die Form der Kurve durch die Wahl des Knotenvektors beeinflusst wird. Der nicht-uniforme Knotenvektor führt zu einer anderen Kurvenform als der gleichmäßig verteilte Knotenvektor, was zu einer Änderung der Position der Kurve führt.

    c)

    Berechne die NURBS-Fläche S(u, v), gegeben durch:

    • Kontrollpunkte: P_{00} = (1, 1, 0), P_{01} = (2, 0, 0), P_{10} = (1, 2, 1), P_{11} = (2, 2, 1)
    • Gewichte: w_{00} = 1, w_{01} = 2, w_{10} = 1, w_{11} = 1
    • Knotenvektoren:
      • U = [0, 0, 1, 1]
      • V = [0, 0, 1, 1]
    • Basisfunktionen:
      • N_{i,1}(u) = 1 für 0 <= u <= 1
      • M_{j,1}(v) = 1 für 0 <= v <= 1

      Bestimme die NURBS-Fläche S(0.5, 0.5).

      Lösung:

      Um die NURBS-Fläche S(u, v) zu berechnen, verwenden wir die folgende Formel:

      S(u, v) = \( \frac{\sum_{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) \cdot M_{j,q}(v) \cdot P_{ij} \cdot w_{ij}}{\sum_{i=0}^{n} \sum_{j=0}^{m} N_{i,p}(u) \cdot M_{j,q}(v) \cdot w_{ij}} \)

      Unsere gegebenen Parameter sind:

      • Kontrollpunkte: P_{00} = (1, 1, 0), P_{01} = (2, 0, 0), P_{10} = (1, 2, 1), P_{11} = (2, 2, 1)
      • Gewichte: w_{00} = 1, w_{01} = 2, w_{10} = 1, w_{11} = 1
      • Knotenvektoren:
        • U = [0, 0, 1, 1]
        • V = [0, 0, 1, 1]
      • Basisfunktionen:
        • N_{i,1}(u) = 1 für 0 <= u <= 1
        • M_{j,1}(v) = 1 für 0 <= v <= 1

      Wir wollen die NURBS-Fläche S(0.5, 0.5) berechnen.

      Schritt-für-Schritt-Berechnung:

    1. Berechne die Werte der Basisfunktionen bei u = 0.5 und v = 0.5:
    • N_{0,1}(0.5) = 1
    • N_{1,1}(0.5) = 1
    • M_{0,1}(0.5) = 1
    • M_{1,1}(0.5) = 1
  • Berechne den Zähler der NURBS-Formel:
  • \( \sum_{i=0}^{1} \sum_{j=0}^{1} N_{i,1}(u) \cdot M_{j,1}(v) \cdot P_{ij} \cdot w_{ij} \)

    = 1 * 1 * (1, 1, 0) * 1 + 1 * 1 * (2, 0, 0) * 2 + 1 * 1 * (1, 2, 1) * 1 + 1 * 1 * (2, 2, 1) * 1

    = (1, 1, 0) + (4, 0, 0) + (1, 2, 1) + (2, 2, 1)

    = (8, 5, 2)

  • Berechne den Nenner der NURBS-Formel:
  • \( \sum_{i=0}^{1} \sum_{j=0}^{1} N_{i,1}(u) \cdot M_{j,1}(v) \cdot w_{ij} \)

    = 1 * 1 * 1 + 1 * 1 * 2 + 1 * 1 * 1 + 1 * 1 * 1

    = 1 + 2 + 1 + 1

    = 5

  • Schließlich berechne S(0.5, 0.5):
  • \( S(0.5, 0.5) = \frac{(8, 5, 2)}{5} = (1.6, 1, 0.4) \)

    Die NURBS-Fläche S(0.5, 0.5) ist also (1.6, 1, 0.4).

    d)

    Erkläre die Bedeutung der Gewichte im Kontext der NURBS-Kurven und -Flächen.

    Wie beeinflussen die Gewichte ?

    Lösung:

    Die Gewichte sind ein wesentlicher Bestandteil der NURBS-Kurven und -Flächen und spielen eine entscheidende Rolle bei der Formgebung und Flexibilität dieser geometrischen Darstellungen.

    Bedeutung der Gewichte:

    Gewichte, die jedem Kontrollpunkt einer NURBS-Kurve oder -Fläche zugewiesen sind, beeinflussen die Position und Form der resultierenden Kurve oder Fläche. Sie ermöglichen eine feinere Kontrolle über die Geometrie und bieten mehr Flexibilität als reguläre B-Splines.

    Einfluss der Gewichte:

    Die Gewichte beeinflussen die Kurve und Fläche wie folgt:

    • Beeinflussung der Nähe zu Kontrollpunkten: Höhere Gewichte führen dazu, dass die Kurve oder Fläche näher an den entsprechenden Kontrollpunkten befindet. Umgekehrt führen niedrigere Gewichte dazu, dass die Kurve oder Fläche weiter von diesen Kontrollpunkten entfernt ist.
    • Verteilung der Punkte: Durch Anpassung der Gewichte können Designer bestimmte Abschnitte der Kurve oder Fläche mehr oder weniger beeinflussen, sodass sie beispielsweise schärfer oder weicher werden.
    • Glättung und Schärfe: Hohe Gewichte an einem bestimmten Punkt erzeugen eine „Zugkraft“ , die dazu beiträgt, schärfere Kanten zu erzeugen. Niedrigere Gewichte führen zu glatteren Übergängen.

    Hier ein detailliertes Beispiel zur Illustration:

    Beispiel: NURBS-Kurve

    • Kontrollpunkte: P_0 = (1, 1), P_1 = (2, 0), P_2 = (3, 3)
    • Gewichte: w_0 = 1, w_1 = 3, w_2 = 1
    • In diesem Beispiel haben wir ein hohes Gewicht w_1 dem Kontrollpunkt P_1 zugeordnet. Dies führt dazu, dass die Kurve näher an P_1 herangezogen wird, was eine schärfere Biegung in der Kurve erzeugt.

    Wenn wir das Gewicht w_1 verringern, wird die NURBS-Kurve glatter und weiter von P_1 entfernt.

    Fazit:

    Die Verwendung von Gewichten in NURBS-Kurven und -Flächen gibt Designern und Ingenieuren die Möglichkeit, komplexe Formen mit hoher Präzision und Flexibilität zu modellieren.

    Sign Up

    Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

    Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

    Kostenloses Konto erstellen

    Du hast bereits ein Konto? Anmelden