我正在编写一个类来帮助鼠标移动,但似乎无法使带有距离和角度功能的移动正常工作,它似乎总是以45度角移动鼠标。
public static POINT moveDistanceAngle(POINT start, double distance, double angle)
{
double radians = angleToRadians(angle);
int x = (int)Math.Round(Math.Cos(radians) * distance);
int y = (int)Math.Round(Math.Sin(radians) * distance);
return new POINT(start.X + x, start.Y + y);
}
我正在使用GetCursorPos来说明问题。
public static double angleToRadians(double angle)
{
return (Math.PI / 180) * angle;
}
我在数学上做错了吗?
答案 0 :(得分:1)
此愚蠢帖子的道歉。花了几个小时后,我发现实际问题出在我的数学中来设置鼠标光标,而不是数学中。这篇文章实际上具有正确的数学。
答案 1 :(得分:0)
看起来 angle 用弧度而不是度来度量,并且您将弧度进行了两次转换::
public static POINT moveDistanceAngle(POINT start, double distance, double angleRad)
{
int x = (int)Math.Round(Math.Cos(angleRad) * distance);
int y = (int)Math.Round(Math.Sin(angleRad) * distance);
return new POINT(start.X + x, start.Y + y);
}