2011-12-18 93 views
1

假設我有一個對象被定義爲矢量點的數組,並且默認情況下它正在向+x軸向下看。如果我想讓對象面對一個單位向量,比如(0,1),我該怎麼做?我會假設它的3D空間相似?使2D對象指向單位矢量

編輯:我不認爲三角函數是必要的,所以請不要使用角度和/或arctangents。

回答

1

這對2D來說相當容易。在2D中,物體旋轉可以表示爲單個角度。使用您的方向矢量來調用反射程序來獲取角度,然後按該角度旋轉對象。

編輯:沒有作用嗎?好吧,你想讓對象中的X軸成爲一些矢量(u, v)。在這種情況下,y軸始終可表示爲(-v, u),如果(u, v)是單位向量,則y軸也將是單位向量。

所以只需要做到這一點:如果你有一個點(x, y)相對於你的對象,相對於世界的位置應該是(object.xCenter, object.yCenter) + x(u, v) + y(-v, u) = (object.xCenter + u*x - v*y, object.yCenter + v*x + u*y)

示例:位於(5,5)處的對象。在(2,2)面對x軸方向時,它相對於它有一個點。如果您現在希望將其定向爲(sqrt(2)/ 2,sqrt(2)/ 2)(單位長度版本(1,1)),則相對於世界的點是(5,5 + 2 * SQRT(2))。

+0

對不起,我編輯了我的問題,因爲我忘了提到一些東西。另外,我還想知道如何旋轉對象。 – slartibartfast 2011-12-18 04:35:04