2017-05-12 54 views
-1

我有一個對象,我從二維空間獲取位置和旋轉。確定新的位置給定的旋轉和所需的距離

我需要在X和Y兩個方向上將這個物體的位置總共提前12米,它的旋轉方向只能改變X和Y的位置。

這是我嘗試失敗的一個(壞)例子。

if (direction <= 45) 
{ 
    float nx = Convert.ToSingle(direction * .13333333); 
    float ny = 12 - nx; 
} else if (direction <= 90) 
{ 
    float ny = Convert.ToSingle((90 - direction) * .133333333); 
    float nx = 12 - ny; 
} else if (direction <= 135) 
{ 
    float ny = Convert.ToSingle((135 - direction) * -.133333333); 
    float nx = -12 - ny; 
} else if (direction <= 180) 
{ 
    float nx = Convert.ToSingle((180 - direction) * -.133333333); 
    float ny = -12 - nx; 
} 

我甚至使用正確的公式或方法來獲得所需的結果嗎? 我有理由相信我需要Cos和Tan,但對於如何或何時使用它們有一些想法。

+1

我想你應該看看(2D)矢量數學一點點的基礎知識。谷歌在這方面找到資源是無與倫比的...... – elgonzo

+0

你完全可以避免這種情況,如果你創建一個帶有正弦和餘弦的向量,那麼距離就是要乘以的半徑,比如'x = distance * cos(angle )'和'y =距離* sin(角度)'。不應該需要tangens。角度必須以弧度指定(全圓= 2 * Pi)。 – dlatikay

回答

相關問題