Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Combinando Transformaciones | Transformaciones geométricas
Modelización Geométrica con Python

Combinando Transformaciones

Desliza para mostrar el menú

Al trabajar con figuras geométricas, a menudo es necesario aplicar más de una transformación a una figura. Este proceso se denomina composición de transformaciones. El orden en que se aplican las transformaciones—como traslación, rotación y escalado—es muy importante, ya que cada transformación modifica la posición, el tamaño o la orientación de la figura de una manera que afecta la siguiente operación.

Supón que comienzas con un polígono y deseas trasladarlo (moverlo), luego rotarlo y finalmente escalarlo. Si cambias el orden—por ejemplo, escalas primero, luego rotas y después trasladas—puedes obtener un resultado muy diferente. Esto se debe a que las transformaciones no son conmutativas: A seguida de B no siempre da el mismo resultado que B seguida de A.

Para combinar transformaciones, se aplica cada una a la figura en secuencia. Cada paso utiliza el resultado del paso anterior como entrada. Este enfoque permite construir manipulaciones complejas a partir de operaciones simples, pero siempre se debe tener en cuenta el orden.

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

¿Qué afirmación describe mejor por qué importa el orden al aplicar transformaciones cuando se combinan?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 7
some-alt