Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Combinaison des transformations | Transformations Géométriques
Modélisation Géométrique avec Python

Combinaison des transformations

Glissez pour afficher le menu

Lorsqu'on travaille avec des formes géométriques, il est souvent nécessaire d'appliquer plusieurs transformations à une même forme. Ce processus s'appelle la composition de transformations. L'ordre dans lequel les transformations sont appliquées—comme la translation, la rotation et la mise à l'échelle—a une grande importance, car chaque transformation modifie la position, la taille ou l'orientation de la forme d'une manière qui influence l'opération suivante.

Supposons que vous commenciez avec un polygone et que vous souhaitiez d'abord le translater (le déplacer), puis le faire pivoter, et enfin le mettre à l'échelle. Si vous changez l'ordre—par exemple, mise à l'échelle d'abord, puis rotation, puis translation—vous pouvez obtenir un résultat très différent. Cela s'explique par le fait que les transformations ne sont pas commutatives : A suivi de B ne donne pas toujours le même résultat que B suivi de A.

Pour combiner des transformations, il faut appliquer chacune d'elles à la forme, l'une après l'autre. Chaque étape utilise le résultat de l'étape précédente comme entrée. Cette méthode permet de réaliser des manipulations complexes à partir d'opérations simples, mais il faut toujours garder à l'esprit l'importance de l'ordre.

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

Quelle affirmation décrit le mieux pourquoi l'ordre d'application des transformations est important lorsqu'on les combine ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 2. Chapitre 7
some-alt