Como girar um triângulo em uma grade

programadores de jogos precisa escrever fórmulas matemáticas para girar objetos.

rotações bidimensionais chegar muitas vezes na produção de imagem digital e programação de jogos. Como os objetos se movem em torno de um mundo virtual que tanto pode traduzir e girar. Em duas dimensões, uma rotação é definido por uma linha central, o ponto sobre o qual a rotação tem lugar, e o ângulo de rotação. Para rodar um triângulo, você girar os três vértices que definem o triângulo.

Triangle na grelha

  • Pontos numa grelha bidimensional são escritos (x, y). Um triângulo tem três desses pontos, um que definem cada vértice. Por exemplo, poderíamos rotular essas p1 = (x1, y1), p2 = (X2, Y2) e P3 = (x3, y3).

Rotações em torno da origem



  • Se você girar um ponto p por um ângulo # 952-, você começa um novo ponto p `= (x`, y `) onde x` = x # 8729-cos (# 952-) - y # 8729-sin (# 952-) e y `= y # 8729-cos (# 952-) + x # 8729-sin (# 952-). Para rodar um triângulo, de aplicar esse processo para P1, P2 e P3.

Rotações em torno de um eixo arbitrário

  • Para girar em torno de um eixo arbitrário, você traduzir o eixo da origem, tendo o ponto p com ele, realizar a rotação como acima, em seguida, desfazer a tradução. Seja P = (X, Y) ser o eixo. Traduzir tanto o eixo e o ponto de origem para o subtraindo P. Isto dá um novo eixo, P = P - P = (0, 0), e um novo ponto de p = (X, y) = P-P = (x - X, Y - Y). Executar a rotação, como de costume na p. Finalmente, desfazer a tradução inicial, adicionando P para obter x `= X + (x - X) # 8729-cos (# 952-) - (y - Y) # 8729-sin (# 952-) e y` = Y + (y - Y) # 8729-cos (# 952-) + (x - X) # 8729-sin (# 952-). Repita esse processo para cada ponto.

Exemplo

  • Permitir que um triângulo de ser definido pelos pontos P1 = (1,1), P2 = (2,3) e P3 = (4,2). Rodar o triângulo em torno do ponto P = (3, -1) por 23 graus. Usando a fórmula, P1 - P = (-2,2) e p1`_x = 3 + (-2) # 8729-COS (23) - 2 # 8729-sin (23) = 0,3775, e p1`_y = - 1 + 2 # 8729-COS (23) + (-2) # 8729-sin (23) = 0,0595. Transformando os outros pontos de maneira semelhante, temos os novos pontos: p1 `= (0,3775, 0,0595), p2` = (0,5166, 2,2913) e P3 `= (2,7483, 2,1522).

De esta maneira? Compartilhar em redes sociais:

LiveInternet