Rotation des Formes
Glissez pour afficher le menu
Pour faire pivoter une figure géométrique, telle qu'un polygone, autour d'un point (souvent l'origine), on utilise une formule mathématique spécifique. Lorsque vous faites pivoter un point (x, y) autour de l'origine d'un angle θ (exprimé en radians), les nouvelles coordonnées (x', y') sont calculées comme suit :
x' = x * cos(θ) - y * sin(θ);y' = x * sin(θ) + y * cos(θ).
Cette formule est issue de la trigonométrie et décrit comment chaque point se déplace le long d'un arc de cercle centré sur l'origine. En Python, vous pouvez utiliser le module math pour accéder aux fonctions sinus et cosinus, et l'angle doit être exprimé en radians pour ces fonctions.
Appliquez cette formule étape par étape. Supposons que vous souhaitiez faire pivoter un triangle dont les sommets sont (1, 0), (0, 1) et (-1, 0) de 90 degrés (soit π/2 radians) autour de l'origine. Pour chaque sommet, vous remplacez les valeurs x et y dans la formule ci-dessus et calculez la nouvelle position. En effectuant cela pour tous les sommets, vous obtenez le triangle pivoté.
En modélisation géométrique, on travaille souvent avec des polygones représentés sous forme de listes de points. Pour faire pivoter un polygone entier, il suffit d'appliquer la formule de rotation à chaque sommet de la liste. Cette méthode permet de transformer n'importe quel polygone, quel que soit le nombre de côtés, en parcourant simplement ses points et en mettant à jour leurs positions.
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)
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion