javascript旋转翻译函数

标签 javascript math trigonometry

有人有 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/

相关文章:

javascript - jQuery 按类单击功能不起作用

javascript - 定位父元素以使其子元素在屏幕上居中

c++ - 使用 X、Y 和 Z 查找 Y 角度

python - math.sin 和 math.cos 中的不同精度

javascript - 如何重构我的 React 组件以接受一组错误,并在 error.show = true 对于其中任何一个错误时显示错误消息

javascript - 无法替换 JavaScript 中的 ↵ 符号?

javascript - 下拉菜单 bootstrap 3 不起作用

javascript - 按给定范围缩放数字

javascript - 为什么这个 javascript 和 html 代码没有计算结果?

javascript - JavaScript 中的频率正弦扫描生成