Javascript 为什么Math.atan2对我来说不正确?
我正在尝试创建一个简单的游戏,其中中心的矩形始终指向鼠标。出于某种原因,当我使用Math.atan2时,我得到的奇怪值,角度永远不会超过3Javascript 为什么Math.atan2对我来说不正确?,javascript,math,rotation,paperjs,atan2,Javascript,Math,Rotation,Paperjs,Atan2,我正在尝试创建一个简单的游戏,其中中心的矩形始终指向鼠标。出于某种原因,当我使用Math.atan2时,我得到的奇怪值,角度永远不会超过3 如果有人能发现我做错了什么,甚至能编辑草图使其正常工作,那就太好了:)这里有三件事: 旋转使用paper.js添加到当前旋转中,要禁用它,需要设置applyMatrix:false 旋转的单位是度,而不是弧度。您需要将您的atan2乘以180/Math.PI 您应该使用player.center而不是view.center 以下是您可以使用的代码: var
如果有人能发现我做错了什么,甚至能编辑草图使其正常工作,那就太好了:)这里有三件事:
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;
}
这里有三件事:
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;
}
你想在这里做什么?现在,您只需根据两点在屏幕上的位置,而不是
dx
或dy
或鼠标位置本身,获取两点的反正切<代码>数学.atan2在这里似乎工作正常。我希望矩形旋转以面向鼠标。我想我遗漏了什么/做了错事?请粘贴代码。我不点击外部链接。你懂三角学吗?切线函数?如何变换点?不确定纸张js,但如果它需要度,则乘以math.tan(x,y)*180/math.Pi,您想在这里做什么?现在,您只需根据两点在屏幕上的位置,而不是dx
或dy
或鼠标位置本身,获取两点的反正切<代码>数学.atan2在这里似乎工作正常。我希望矩形旋转以面向鼠标。我想我遗漏了什么/做了错事?请粘贴代码。我不点击外部链接。你懂三角学吗?切线函数?如何变换点?不确定纸张js,但如果它期望度,则乘以math.tan(x,y)*180/math.pi