Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Transformaties Combineren | Geometrische Transformaties
Geometrisch Modelleren met Python

Transformaties Combineren

Veeg om het menu te tonen

Bij het werken met geometrische vormen moet je vaak meer dan één transformatie op een vorm toepassen. Dit proces wordt transformatiecompositie genoemd. De volgorde waarin je transformaties toepast—zoals translatie, rotatie en schaling—is van groot belang, omdat elke transformatie de positie, grootte of oriëntatie van de vorm verandert op een manier die de volgende bewerking beïnvloedt.

Stel dat je begint met een veelhoek en deze eerst wilt transleren (verplaatsen), daarna roteren en tot slot schalen. Als je de volgorde verandert—bijvoorbeeld eerst schalen, dan roteren en daarna transleren—kan het eindresultaat heel anders zijn. Dit komt doordat transformaties niet commutatief zijn: A gevolgd door B geeft niet altijd hetzelfde resultaat als B gevolgd door A.

Om transformaties te combineren, pas je ze één voor één toe op de vorm. Elke stap gebruikt het resultaat van de vorige stap als invoer. Met deze aanpak kun je complexe bewerkingen opbouwen uit eenvoudige operaties, maar je moet altijd letten op de volgorde.

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

Welke uitspraak beschrijft het beste waarom de volgorde van het toepassen van transformaties belangrijk is bij het combineren ervan?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 7

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 2. Hoofdstuk 7
some-alt