Rotación de Figuras
Desliza para mostrar el menú
Para rotar una figura geométrica, como un polígono, alrededor de un punto (a menudo el origen), se utiliza una fórmula matemática específica. Cuando se rota un punto (x, y) alrededor del origen por un ángulo θ (medido en radianes), las nuevas coordenadas (x', y') se calculan de la siguiente manera:
x' = x * cos(θ) - y * sin(θ);y' = x * sin(θ) + y * cos(θ).
Esta fórmula se deriva de la trigonometría y describe cómo cada punto se desplaza a lo largo de un arco circular centrado en el origen. En Python, se puede utilizar el módulo math para acceder a las funciones de seno y coseno, y el ángulo debe estar en radianes para estas funciones.
Aplica esta fórmula paso a paso. Supón que deseas rotar un triángulo con vértices en (1, 0), (0, 1) y (-1, 0) 90 grados (que es π/2 radianes) alrededor del origen. Para cada vértice, sustituye los valores de x e y en la fórmula anterior y calcula la nueva posición. Al hacer esto para todos los vértices, obtienes el triángulo rotado.
En el modelado geométrico, a menudo se trabaja con polígonos representados como listas de puntos. Para rotar un polígono completo, se aplica la fórmula de rotación a cada vértice de la lista. Este enfoque permite transformar cualquier polígono, sin importar el número de lados, simplemente iterando por sus puntos y actualizando sus posiciones.
12345678910111213141516171819202122232425import math def rotate_polygon(points, angle_radians): """Rotate a polygon around the origin by a specified angle. Args: points: List of (x, y) tuples representing the polygon's vertices. angle_radians: The rotation angle in radians. Returns: List of (x', y') tuples representing the rotated vertices. """ cos_theta = math.cos(angle_radians) sin_theta = math.sin(angle_radians) rotated = [] for x, y in points: x_new = x * cos_theta - y * sin_theta y_new = x * sin_theta + y * cos_theta rotated.append((x_new, y_new)) return rotated # Example usage: triangle = [(1, 0), (0, 1), (-1, 0)] rotated_triangle = rotate_polygon(triangle, math.pi / 2) print(rotated_triangle)
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla