Rotação de Formas
Deslize para mostrar o menu
Para rotacionar uma figura geométrica, como um polígono, em torno de um ponto (geralmente a origem), utiliza-se uma fórmula matemática específica. Ao rotacionar um ponto (x, y) em torno da origem por um ângulo θ (medido em radianos), as novas coordenadas (x', y') são calculadas da seguinte forma:
x' = x * cos(θ) - y * sin(θ);y' = x * sin(θ) + y * cos(θ).
Essa fórmula é derivada da trigonometria e descreve como cada ponto se move ao longo de um arco circular centrado na origem. Em Python, pode-se utilizar o módulo math para acessar as funções seno e cosseno, sendo necessário que o ângulo esteja em radianos para essas funções.
Aplique essa fórmula passo a passo. Suponha que você queira rotacionar um triângulo com vértices em (1, 0), (0, 1) e (-1, 0) por 90 graus (que corresponde a π/2 radianos) em torno da origem. Para cada vértice, substitua os valores de x e y na fórmula acima e calcule a nova posição. Fazendo isso para todos os vértices, obtém-se o triângulo rotacionado.
Na modelagem geométrica, frequentemente se trabalha com polígonos representados como listas de pontos. Para rotacionar todo um polígono, aplica-se a fórmula de rotação a cada vértice da lista. Essa abordagem permite transformar qualquer polígono, independentemente do número de lados, simplesmente iterando por seus pontos e atualizando suas posições.
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)
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo