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