Java Robot 类允许人们像移动实际的物理鼠标一样移动鼠标。
但是,如何以一种人道的(因此不是即时的)方式将鼠标从 Point1 移动到 Point2?Aka,如何设置移动速度?
如果 Robot 类不可能有这样的速度,那么如果鼠标只能瞬间移动,那么应该使用什么样的“算法”来模拟人类的鼠标移动?它应该以一定的增量速度逐个像素地移动鼠标吗?
Java Robot 类允许人们像移动实际的物理鼠标一样移动鼠标。
但是,如何以一种人道的(因此不是即时的)方式将鼠标从 Point1 移动到 Point2?Aka,如何设置移动速度?
如果 Robot 类不可能有这样的速度,那么如果鼠标只能瞬间移动,那么应该使用什么样的“算法”来模拟人类的鼠标移动?它应该以一定的增量速度逐个像素地移动鼠标吗?
这是一个很好的方法:
考虑一下start_x
您的鼠标从end_x
哪里开始以及您希望它在哪里结束。相同的y
for (int i=0; i<100; i++){
int mov_x = ((end_x * i)/100) + (start_x*(100-i)/100);
int mov_y = ((end_y * i)/100) + (start_y*(100-i)/100);
robot.mouseMove(mov_x,mov_y);
robot.delay(10);
}
希望有帮助...
Robot 类有一个 delay(...) 方法,您可以使用它来控制点到点的移动。尝试几种不同的算法来确定你喜欢什么。
重写 Geoff 的答案以便于理解:
for (int i=0; i<=100; i++){
int mov_x = start_x + (end_x - start_x) * i/100;
int mov_y = start_y + (end_y - start_y) * i/100;
robot.mouseMove(mov_x,mov_y);
robot.delay(10);
}