2011-12-15 125 views
0

我有兩個對象object1object2object1圍繞其中心旋轉,並且object2將圍繞其定位。問題在於object2的定位正確;這不是100%準確。圍繞旋轉點放置對象

這裏是我的代碼:

angle = atan2(
    cEnemy->position.y - (float) position.y, 
    cEnemy->position.x - (float) position.x)/3.14159265f * 180); 

position.xposition.y代表object1的位置。

這是我的角度,object1用於旋轉。現在我被卡在如何去定位object2

我相信,我需要首先得到的object1中央點,這等於:

object2.x = (position.x + widthOfObject1/2); 
object2.y = (position.y + heightOfObject1/2); 

但後來,我只是不確定什麼待辦事項與角度object1將面臨如何用它來正確定位object2。我很確定我必須在這裏使用sincos,但我不確定。我的想法是定位object2,這樣無論在什麼角度,object2也會在object1的前面小一點。

任何幫助,將不勝感激!

+0

嗯,我正要直到最後一段。 「位置object2,以便無論它在哪個角度,object2也將在object1的前面一小段距離」.... – 2011-12-15 23:47:26

回答

2

好像你想要做的是對象2是從位置P固定距離d,你想通過角一個

所以沿着單位矢量周圍P旋轉它甲[ cos(A) , sin(A) ]

所以沿着一個矢量幅度d[ D cos(A) , D sin(A) ]

所以對象2的位置應該是

object2.x = object1.x + D * cos(A) 
object2.y = object1.y + D * sin(A)