为什么 Math.atan2 不能为我正常工作?

Why is Math.atan2 not working correctly for me?

我正在尝试创建一个简单的游戏,其中中心的矩形始终指向鼠标。出于某种原因,当我使用 Math.atan2 时,我得到了角度永远不会超过 3 的奇怪值...

Here's the sketch with my code

function onMouseMove(event) {
    var dx = event.point.x - view.center.x;
    var dy = event.point.y - view.center.y;
    var rotation = Math.atan2(dy, dx);

    console.log(rotation);
    player.rotation = rotation;
}

如果有人能发现我做错了什么,甚至编辑草图使其正常工作,那就太好了:)

这里有三件事:

  1. 旋转使用 paper.js 添加到当前旋转,要禁用它您需要设置 applyMatrix: false
  2. 旋转是度数而不是弧度。您需要将 atan2 乘以 180 / Math.PI
  3. 您应该使用 player.center 而不是 view.center

这是您可以使用的代码:

var player = new Path.Rectangle({
    strokeColor: '#222222',
    strokeWidth: 10,
    fillColor: '#777777',
    size: [100, 80],
    center: view.center,
    applyMatrix: false
});

function onMouseMove(event) {
    var dx = event.point.x - player.center.x;
    var dy = event.point.y - player.center.y;
    var angle = Math.atan2(dy, dx) * 180 / Math.PI;

    console.log(angle);
    player.rotation = angle;
}