使2D对象指向单位向量

时间:2011-12-18 04:16:42

标签: vector 3d rotation 2d space

假设我有一个被定义为矢量点数组的对象,默认情况下它向下看+ x轴。如果我想让对象面对一个单位向量,比方说,(0,1),我该怎么做?我认为它与3D空间类似吗?

编辑:我认为三角函数不是必需的,所以请不要使用角度和/或角度。

1 个答案:

答案 0 :(得分:1)

2D相当容易。在2D中,对象旋转可以表示为单个角度。使用方向矢量调用反正切例程来获取角度,然后按该角度旋转对象。

编辑:没有arctangents?好吧,你希望对象中的点的X轴成为某个向量(u, v)。在这种情况下,y轴始终表示为(-v, u),如果(u, v)是单位向量,它也将是一个单位向量。

所以这样做:如果你的对象有(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)。当面向x轴方向时,它在(2,2)处具有相对于它的点。如果您现在希望将其定向为(sqrt(2)/ 2,sqrt(2)/ 2)(单位长度版本为(1,1)),则相对于世界的点为(5,5 + 2) * SQRT(2))。