4

Java Robot 类允许人们像移动实际的物理鼠标一样移动鼠标。

但是,如何以一种人道的(因此不是即时的)方式将鼠标从 Point1 移动到 Point2?Aka,如何设置移动速度?

如果 Robot 类不可能有这样的速度,那么如果鼠标只能瞬间移动,那么应该使用什么样的“算法”来模拟人类的鼠标移动?它应该以一定的增量速度逐个像素地移动鼠标吗?

4

3 回答 3

6

这是一个很好的方法:

考虑一下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);
}

希望有帮助...

于 2011-05-27T04:00:52.190 回答
1

Robot 类有一个 delay(...) 方法,您可以使用它来控制点到点的移动。尝试几种不同的算法来确定你喜欢什么。

于 2011-03-17T15:04:53.160 回答
0

重写 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);
}
于 2021-02-22T08:35:23.467 回答