2011-03-04 15 views
17

Supongamos que tengo un objeto en el espacio 2D que puede girar y luego debe moverse de acuerdo con su ángulo de rotación.¿Calcula el movimiento X Y en función del ángulo de rotación?

Por ejemplo:

  • Si el ángulo es 0 (hacia arriba), entonces on_timer debe mover 1 por Y y 0 por X.

  • Si el ángulo es 45, entonces se debe mover 1 por y y 1 por X.

  • Si apuntando 90 grados, entonces 0 por y y 1 por X.

  • Si apuntando 135 grados, luego -1 en Y y +1 en X, etc.

¿Usted conoce alguna función para calcular esto?

+0

Esta es una buena pregunta. – GeneCode

Respuesta

26

así, parece moverse a diferentes velocidades para diferentes ángulos.

Para 0 degress (hacia arriba) se movió por 1, pero 45 grados movió sqrt (1^2 + 1^2) = 1.41.

Creo que desea buscar en seno y coseno.

X += Speed * Math.Cos(angle); 
Y += speed * Math.Sin(angle); 

Saludos Gert-Jan

+5

¡Gracias, funcionó! :) doble radianes = (Math.PI/180) * (this.orient - 90); this.CorX = Convert.ToInt16 (this.CorX + 15 * Math.Cos (radianes)); this.CORY = Convert.ToInt16 (this.CORY + 15 * Math.Sin (radianes)); – Rob

Cuestiones relacionadas