使用atan2()

时间:2015-09-16 13:14:37

标签: javascript math

我有一个旋转角度:

var dx = this.mouseX - this.startX;
var dy = this.mouseY - this.startY;

_this.rotation = Math.atan2(dy, dx);

我知道我的支点(我的形象的中心):

var pivotX = this.x + (this.imageWidth / 2);
var pivotY = this.y + (this.imageHeight / 2);

现在我还有另外一点:

var rightX = 600;
var rightY = 400;

如何使用我从atan2()函数获得的角度围绕我的轴心点旋转此点?

1 个答案:

答案 0 :(得分:5)

要以弧度给定角度围绕原点{0,0}旋转点{x,y},请执行以下算法:

new_x_point = old_x_point * cos(Angle) - old_y_point * sin(Angle);
new_y_point = old_y_point * cos(Angle) + old_x_point * sin(Angle);

现在,如果原点或枢轴点不是{0,0},那么您需要先从原点的坐标中减去要旋转的点,然后执行在该点上旋转,然后将旋转点的偏移量添加回来,以便将其转换回原始位置。