由于每个人似乎都刚刚在评论中回答了,因此您的问题的答案是这样的:您需要使用极坐标系。
让我们调用您的角度a,您要添加到它b的角度,因此修改后的角度是a+b。
在极坐标系中,您的点由角度a = Math.atan2(y, x)和半径表示r = sqrt(x*x + y*y)。如果只使用角度,则会丢失一些信息,即鼠标与 (0,0) 点的距离。
将从您的极坐标表示背面(角已被修改后)现在是可能的:x = r * Math.cos(a+b),y = r * Math.sin(a+b)
通过使用一些很酷的三角函数公式,我们可以做得更好。我们不需要去一个角度再回到一个向量,我们可以直接修改向量的 x 和 y 值,仍然像你想要的那样改变角度。
请记住,我们要查找x'=r cos(a+b)和y'=r sin(a+b)。我们显然会得到以下公式:

现在让我们r在两边乘以得到想要的结果。

我们现在认出了x=r cos(a)and y=r sin(a),所以我们有了最终的表达式:

如果你仔细想想,对于小的值b(这是你想要的),sin(b)接近于 0,cos(b)接近于 1,所以扰动很小。
您不仅将三角运算的次数从 3 次减少到 2 次,而且还有一个 cos 和一个小值的 sin,如果它们是从泰勒级数计算出来的,这很好,这使得收敛速度非常快。但这取决于实现。
注意:另一种(更优雅的?)找到相同结果(和完全相同的公式)的方法是使用旋转矩阵。
哎呀,你说你不想要代码。好吧,让我们这样做:我不会在这里发布它,但是如果您想与我完成编码实现后的做法进行比较,您可以在此处查看我的操作:http://ideone .com/zRV4lL