Sto lavorando a un progetto sul controllo remoto, invio conrdinate xey del cursore da client a server.Classe Java robot che simula il movimento del mouse umano
Ma
robot.mouseMove(x,y);
si sposta solo il cursore sul punto particolare senza spostare il punto di forma del cursore originale
devo trovare questo semplice algorthim per simulare il movimento continuo di topo
for (int i=0; i<100; i++){
int x = ((end_x * i)/100) + (start_x*(100-i)/100);
int y = ((end_y * i)/100) + (start_y*(100-i)/100);
robot.mouseMove(x,y);
}
Ma questo algorthim è ancora troppo semplice, si muove lentamente da un punto all'altro lentamente, il che a differenza del comportamento umano.
Ho letto un codice laghetti L'alimento aperto circa il controllo remoto da web, e trovo questo progetto http://code.google.com/p/java-remote-control/ sta usando il MosueMovement chiamata di metodo dalla classe MouseListener, che usano per eseguire la "trascinamento".
Mi piacerebbe sapere qualcun altro sa il modo migliore per farlo?
Si consiglia di raccogliere alcuni dati da utenti umani e quindi utilizzarli in vari modi per replicare la simulazione umana. –
Dal tuo post sembra che la tua lamentela principale sia che la velocità di movimento del mouse è sbagliata. Se questo è il problema principale, è possibile regolare il codice per rendere il movimento del mouse una velocità costante, quindi regolare tale velocità fino a quando non si avvicina al livello ottimale. –
Forse potresti [Alt] + [Tab] un paio di volte e controlla via e-mail e facebook sulla strada da A a B. Seriamente, penso che registrare il movimento del mouse di un paio di utenti potrebbe essere un interessante esperimento per renderlo più realistico. Sarebbe bello prendere in considerazione un paio di variabili, come la posizione X, Y, velocità, tempo, direzione corrente, eseguire Rapid Miner e vedere cosa è possibile estrarre da esso. Forse saresti in grado di trovare un algoritmo più sofisticato. – toniedzwiedz