我有一个旋转角度:
var dx = this.mouseX - this.startX;
var dy = this.mouseY - this.startY;
_this.rotation = Math.atan2(dy, dx);
Run Code Online (Sandbox Code Playgroud)
我知道我的支点(我的形象的中心):
var pivotX = this.x + (this.imageWidth / 2);
var pivotY = this.y + (this.imageHeight / 2);
Run Code Online (Sandbox Code Playgroud)
现在我有另一点:
var rightX = 600;
var rightY = 400;
Run Code Online (Sandbox Code Playgroud)
如何使用我从atan2()函数获得的角度围绕我的枢轴点旋转此点?
要以弧度给定角度围绕原点{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);
Run Code Online (Sandbox Code Playgroud)
现在,如果原点或枢轴点不是{0,0},那么您需要先从原点的坐标中减去要旋转的点,然后在该点上进行旋转,然后添加偏移旋转的点返回,以便它转换回它的原始位置.
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |