2011-03-04 130 views
17

假設我在2D空間中有一個物體可以旋轉,然後根據其旋轉角度移動。基於旋轉角度計算X Y移動?

例如:

  • 如果角度爲0(朝上),然後on_timer它應該通過X.移動通過Y 1和0

  • 如果角度爲45,那麼它應該移動1由Y和1由X.

  • 如果指向90度,然後由Y 0和1由X.

  • 如果指向135度,然後-1由Y和+1等X等。

你知道計算這個的任何函數嗎?

+0

這是一個很好的問題。 – GeneCode 2016-08-28 12:34:53

回答

26

好,它似乎在不同速度下的不同角度移動。

對於0增量(直線向上)它移動了1,但是45移動了sqrt(1^2 + 1^2)= 1.41。

我想你想看看正弦和餘弦。

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

問候格特 - 揚

+5

謝謝,得到它的工作! :) double radians =(Math.PI/180)*(this.orient - 90); this.CorX = Convert.ToInt16(this.CorX + 15 * Math.Cos(radians)); this.CorY = Convert.ToInt16(this.CorY + 15 * Math.Sin(radians)); – Rob 2011-03-04 11:45:17