我有一个旋转角度:
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()
函数获得的角度围绕我的轴心点旋转此点?
答案 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},那么您需要先从原点的坐标中减去要旋转的点,然后执行在该点上旋转,然后将旋转点的偏移量添加回来,以便将其转换回原始位置。