Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Kombinieren von Transformationen | Geometrische Transformationen
Geometrische Modellierung mit Python

Kombinieren von Transformationen

Swipe um das Menü anzuzeigen

Bei der Arbeit mit geometrischen Formen ist es oft notwendig, mehr als eine Transformation auf eine Form anzuwenden. Dieser Vorgang wird als Transformationen-Kombination bezeichnet. Die Reihenfolge, in der Transformationen wie Verschiebung, Rotation und Skalierung angewendet werden, ist von großer Bedeutung, da jede Transformation die Position, Größe oder Ausrichtung der Form so verändert, dass sie die nächste Operation beeinflusst.

Angenommen, Sie beginnen mit einem Polygon und möchten es zunächst verschieben, dann rotieren und schließlich skalieren. Wenn Sie die Reihenfolge ändern – zum Beispiel zuerst skalieren, dann rotieren und dann verschieben – kann das Ergebnis völlig anders ausfallen. Das liegt daran, dass Transformationen nicht kommutativ sind: A gefolgt von B ergibt nicht immer dasselbe wie B gefolgt von A.

Um Transformationen zu kombinieren, wenden Sie jede einzelne nacheinander auf die Form an. Jeder Schritt verwendet das Ergebnis des vorherigen Schritts als Eingabe. Mit diesem Ansatz lassen sich komplexe Manipulationen aus einfachen Operationen aufbauen, wobei jedoch stets auf die Reihenfolge geachtet werden muss.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
import numpy as np import matplotlib.pyplot as plt # Define a simple triangle polygon polygon = np.array([ [0, 0], [1, 0], [0.5, 1], [0, 0] ]) # Translation: move by (2, 1) def translate(points, tx, ty): return points + np.array([tx, ty]) # Rotation: rotate by theta degrees around origin def rotate(points, theta_deg): theta = np.radians(theta_deg) rotation_matrix = np.array([ [np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)] ]) return points @ rotation_matrix.T # Scaling: scale by (sx, sy) def scale(points, sx, sy): scaling_matrix = np.array([ [sx, 0], [0, sy] ]) return points @ scaling_matrix.T # Apply transformations translated = translate(polygon, 2, 1) rotated = rotate(translated, 45) scaled = scale(rotated, 1.5, 0.5) # Plotting plt.figure(figsize=(6, 6)) plt.plot(polygon[:, 0], polygon[:, 1], 'bo-', label='Original') plt.plot(translated[:, 0], translated[:, 1], 'go-', label='Translated') plt.plot(rotated[:, 0], rotated[:, 1], 'ro-', label='Rotated') plt.plot(scaled[:, 0], scaled[:, 1], 'mo-', label='Scaled') plt.legend() plt.axis('equal') plt.title('Combining Translation, Rotation, and Scaling') plt.show()
question mark

Welche Aussage beschreibt am besten, warum die Reihenfolge bei der Kombination von Transformationen wichtig ist?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 7
some-alt