2011-03-17 89 views
3

Java Robot類允許用戶移動鼠標,就像實際的物理鼠標被移動一樣。Java機器人鼠標移動:設置速度?

但是,如何以人道(因而不是即時)的方式將鼠標從Point1移動到Point2?又如何設定運動速度?

如果Robot類沒有這樣的速度,那麼如果鼠標只能立即移動,應該用什麼樣的「算法」來模仿人類的鼠標移動?它應該以一定的遞增速度逐個像素地移動鼠標嗎?

回答

0

機器人類有一個延遲(...)方法,您可以使用它來控制點到點的移動。嘗試一些不同的算法來確定你喜歡什麼。

+0

延遲方法眠的機器人。這會如何減緩鼠標的移動?還是你暗示我應該創建我自己的算法,以一定的增量逐個像素地移動鼠標? – Tom 2011-03-17 15:35:47

+0

是的,你需要創建一個循環,移動鼠標一個像素(或兩個),然後在移動到下一個像素之前延遲。這就是爲什麼你可以創建你自己的算法。您可以確定要移動多少個像素以及延遲多長時間等。 – camickr 2011-03-17 16:21:19

+0

雖然不回答哪種算法會很人性化。 – Tom 2011-03-17 20:35:25

4

這裏是這裏的好方法:

考慮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,1)到(0,0)。還有一個問題:它只有99%的道路。 – maaartinus 2011-11-03 23:09:05