为什么 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;
}
如果有人能发现我做错了什么,甚至编辑草图使其正常工作,那就太好了:)
这里有三件事:
- 旋转使用 paper.js 添加到当前旋转,要禁用它您需要设置
applyMatrix: false
- 旋转是度数而不是弧度。您需要将
atan2
乘以 180 / Math.PI
- 您应该使用
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;
}
我正在尝试创建一个简单的游戏,其中中心的矩形始终指向鼠标。出于某种原因,当我使用 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;
}
如果有人能发现我做错了什么,甚至编辑草图使其正常工作,那就太好了:)
这里有三件事:
- 旋转使用 paper.js 添加到当前旋转,要禁用它您需要设置
applyMatrix: false
- 旋转是度数而不是弧度。您需要将
atan2
乘以180 / Math.PI
- 您应该使用
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;
}