用于求出一次水平线的旋转度的等式

时间:2011-09-04 22:14:59

标签: c++ math rotation

嘿,所以我有一个物体的中心,我正在用这个中心作为它的起点,并且鼠标定位它的结尾。

如何找到第二个点(?,?)绕静止第一个点(0,0)旋转的方式?
注意:如果第二个点是(1,0),它将会旋转0度。

2 个答案:

答案 0 :(得分:4)

还记得SOHCAHTOA吗? ;)您可以使用arctangent(通过标准atan2()函数)来确定原点和任意点之间的直线角度:

#include <cmath>

double mouseX = ...;
double mouseY = ...;
double angleInRadians = std::atan2(mouseY, mouseX);

答案 1 :(得分:2)

如果旋转角度为a,第二个点为(x,y)则为:

a = arctan(y/x)