假設我在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等。
你知道計算這個的任何函數嗎?
假設我在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增量(直線向上)它移動了1,但是45移動了sqrt(1^2 + 1^2)= 1.41。
我想你想看看正弦和餘弦。
X += Speed * Math.Cos(angle);
Y += speed * Math.Sin(angle);
問候格特 - 揚
謝謝,得到它的工作! :) 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
這是一個很好的問題。 – GeneCode 2016-08-28 12:34:53