鼠标指针锁定在一个点附近

时间:2016-05-23 20:50:42

标签: math rotation equation

很抱歉,如果之前已经提出过这个问题,但是如果是这样的话,我会在发布之前找不到它。

简而言之,我想这样做: Example.

我希望指针(红色)根据鼠标所在位置围绕圆圈(蓝色)旋转。 (如果图片不可见,它会描绘一个蓝色圆圈,红色三角形指向它,朝向鼠标)。

如果可能,请回答一般数学方程式而不是具体代码。感谢。

1 个答案:

答案 0 :(得分:1)

假设正常笛卡尔坐标空间,X轴向右,Y轴向上,则首先需要计算鼠标坐标(M)到圆周原点的角度(O):

theta = atan2(M.y - O.y, M.x - O.x)

然后你可以计算一个点(P)的位置,该点在半径(r)处围绕圆圈运行:

P.x = r * cos(theta)
P.y = r * sin(theta)

atan2(y,x)函数是一个常见的数学库函数,它只计算atan(y / x),但要考虑x和y的相对符号来确定正确的象限。