有人有 JavaScript 中旋转后 x/y 位置的翻译函数吗?
例如:
this.mousex = event.clientX - this.el.offsetLeft;
this.mousey = event.clientY - this.el.offsetTop;
给我鼠标位置,但是我的父 div 旋转了 x 度,这当然意味着 mousex/mousey 不正确。 javascript 是否有内置的函数(我没有见过,但是..)?
非常感谢
最佳答案
我刚刚为您写了以下内容,我已经使用 (1,0,Math.PI/2)
和 (0,1,Math.PI/2) 检查了它
并且它有效。
function rotatePoints(x,y,angle){
var point={};
point.x = x*Math.cos(angle)- y*Math.sin(angle);
point.y = x*Math.sin(angle) + y*Math.cos(angle);
return point;
}
应该可以,请参阅 Rotation Matrix in Wikipedia
当然, Angular 应该以弧度为单位。您可以通过乘以 Math.PI 并除以 180 将度数转换为弧度。 Angular 是逆时针的,如果您想顺时针旋转,则传递 -angle 或将 sin 更改为 -sin 应该可以。
关于javascript旋转翻译函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11332188/