我現在正在一個項目上工作,我需要製作一個函數來查找子彈的矢量方向。我目前的代碼已關閉,我似乎找不到原因。C++如何找到窗口中的2個點之間的向量?
float AngleX = pMouse->X() - This->DirectionX();
float AngleY = pMouse->Y() - This->DirectionY();
我現在正在一個項目上工作,我需要製作一個函數來查找子彈的矢量方向。我目前的代碼已關閉,我似乎找不到原因。C++如何找到窗口中的2個點之間的向量?
float AngleX = pMouse->X() - This->DirectionX();
float AngleY = pMouse->Y() - This->DirectionY();
從(X,Y)偏移量找到角度最好功能是atan2(dy, dx)
,其中dy
和dx
是在每個方向上的增量組件。
請注意,結果將以弧度表示,並且在某些圖形系統上,軸會向下而不是向上!
的atan2
的特別好的特性是,它會永遠給你全方位的-π .. π
,你不能用一個單一的acos
或asin
操作得到的結果。得到的角度將是給定線相對於正X軸的角度,逆時針方向。
我不明白如何減去兩個X座標會給你一個角度。什麼是'DirectionX'? – 2013-03-25 17:14:21
'This'?資本化? – raina77ow 2013-03-25 17:14:56
什麼是DirectionX()和DirectionY()?它們是否是(可能歸一化的)速度矢量的組成部分?如果是這樣,請記住你想要的是當前位置,而不是運動方向。 – jerry 2013-03-25 17:17:09