我正在开发一个小型Web应用程序,需要在其中旋转形状。一世
想要通过在圆上捕获一个点来实现这一点,
拖动它以旋转图像。

这是帮助您解释情况的快速插图:

我的主圈子可以拖到 Canvas 上的任何位置。我知道是
半径(r)以及12点(p0)始终为(cx,cy-r)的位置。什么
我需要知道p1的度数是(0-360º),所以我可以旋转
相应地,通过Raphael.rotate()确定主圆的内容。

我已经尝试了许多不同的JavaScript公式来找到它(example),但是似乎没有一个给我0-360到我的基本数学技能之间的值
严重不足。

Color Picker demo(将光标沿着右侧的圆环滑动)具有我想要的行为,但是即使仔细研究了源代码,我似乎也无法准确地复制它。

任何指向我正确方向的事情都将不胜感激。

最佳答案

// Angle between the center of the circle and p1,
// measured in degrees counter-clockwise from the positive X axis (horizontal)
( Math.atan2(p1.y-cy,p1.x-cx) * 180/Math.PI + 360 ) % 360

圆心与p0的夹角始终为+ 90°。有关更多详细信息,请参见 Math.atan2

关于svg - 求圆上点的度数(0-360º),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6635679/

10-12 17:18