Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Rotação de Formas | Transformações Geométricas
Modelagem Geométrica com Python

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.

12345678910111213141516171819202122232425
import 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)
question mark

Qual é uma afirmação verdadeira sobre o efeito de rotacionar um polígono em 90 graus em torno da origem?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 3
some-alt