Java Robot类允许用户移动鼠标,就像实际的物理鼠标被移动一样。Java机器人鼠标移动:设置速度?
但是,如何以人道(因而不是即时)的方式将鼠标从Point1移动到Point2?又如何设定运动速度?
如果Robot类没有这样的速度,那么如果鼠标只能立即移动,应该用什么样的“算法”来模仿人类的鼠标移动?它应该以一定的递增速度逐个像素地移动鼠标吗?
Java Robot类允许用户移动鼠标,就像实际的物理鼠标被移动一样。Java机器人鼠标移动:设置速度?
但是,如何以人道(因而不是即时)的方式将鼠标从Point1移动到Point2?又如何设定运动速度?
如果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);
}
希望帮助...
将分区移出括号使其更快,也更精确。上述算法写成从(1,1)移动到(1,1)到(0,0)。还有一个问题:它只有99%的道路。 – maaartinus 2011-11-03 23:09:05
延迟方法眠的机器人。这会如何减缓鼠标的移动?还是你暗示我应该创建我自己的算法,以一定的增量逐个像素地移动鼠标? – Tom 2011-03-17 15:35:47
是的,你需要创建一个循环,移动鼠标一个像素(或两个),然后在移动到下一个像素之前延迟。这就是为什么你可以创建你自己的算法。您可以确定要移动多少个像素以及延迟多长时间等。 – camickr 2011-03-17 16:21:19
虽然不回答哪种算法会很人性化。 – Tom 2011-03-17 20:35:25