我怎样才能在鼠标上做一个符号点?
How can I make a symbol point at the mouse?
我想让一个符号旋转指向鼠标。我正在使用此功能,但它在符号的枢轴下方不起作用。 inverse tan 函数的范围是 180 度,对吗?那么我怎样才能获得 360 度的移动呢?
是否需要添加 if 语句来检查鼠标位置,或者是否有更优雅的解决方案?
function panelTrack(){
angle = -180/Math.PI * Math.atan((mouseX - panel.x)/(mouseY - panel.y));
panel.rotation = angle;
trace(panel.rotation);
}
数学不是我的强项 - 所以也许其他人会提供更好的答案,但要获得所有 4 个象限,您需要使用 atan2
。
angle = Math.atan2(mouseY - panel.y, mouseX - panel.x) * 180 / Math.PI;
我好像记得它与检查值 0 有关(Math.atan 没有)。
const radiance:Number=180/Math.PI;
angle=-(Math.atan2(mouseX-panel.x, mouseY-panel.y))*radiance;
我使用减号是因为当你不添加减号时通常方向是相反的。
希望这对您有所帮助。
我想让一个符号旋转指向鼠标。我正在使用此功能,但它在符号的枢轴下方不起作用。 inverse tan 函数的范围是 180 度,对吗?那么我怎样才能获得 360 度的移动呢?
是否需要添加 if 语句来检查鼠标位置,或者是否有更优雅的解决方案?
function panelTrack(){
angle = -180/Math.PI * Math.atan((mouseX - panel.x)/(mouseY - panel.y));
panel.rotation = angle;
trace(panel.rotation);
}
数学不是我的强项 - 所以也许其他人会提供更好的答案,但要获得所有 4 个象限,您需要使用 atan2
。
angle = Math.atan2(mouseY - panel.y, mouseX - panel.x) * 180 / Math.PI;
我好像记得它与检查值 0 有关(Math.atan 没有)。
const radiance:Number=180/Math.PI;
angle=-(Math.atan2(mouseX-panel.x, mouseY-panel.y))*radiance;
我使用减号是因为当你不添加减号时通常方向是相反的。
希望这对您有所帮助。