Estoy trabajando en un proyecto sobre control remoto, envíe conrdinate xey del cursor del cliente al servidor.Java Robot class que simula el movimiento del mouse humano
Pero
robot.mouseMove(x,y);
sólo mover el cursor hasta el punto en particular sin mover el punto
Tengo encontrar este sencillo algorthim para simular el movimiento continuo de ratón de la forma del cursor original
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);
}
Pero este algorthim todavía es demasiado simple, simplemente se mueve de un punto a otro punto lentamente, que aún a diferencia del comportamiento humano.
He leído algo de código cómoda de fuente abierta por el control remoto de la Web, y me encuentro con este proyecto http://code.google.com/p/java-remote-control/ está utilizando el MosueMovement llamada a un método de la clase MouseListener, que utilizan para realizar el "arrastre".
Me gustaría saber si alguien sabe la mejor manera de hacerlo.
es posible que desee recopilar algunos datos de usuarios humanos y luego usarlos de varias maneras para replicar la simulación humana. –
De su publicación, parece que su principal queja es que la velocidad de movimiento del mouse es incorrecta. Si ese es el problema principal, entonces puedes ajustar tu código para hacer que el movimiento del mouse sea una velocidad constante, y luego ajustar esa velocidad hasta que esté cerca de lo óptimo. –
Quizás podría [Alt] + [Tab] un par de veces y revisar el correo electrónico y Facebook en el camino de A a B. En serio, creo que registrar el movimiento del mouse de un par de usuarios podría ser un experimento interesante para hacer esto más realista Sería bueno tener en cuenta un par de variables, como la posición X, Y, velocidad, tiempo, dirección actual, ejecutar Rapid Miner y ver qué se puede extraer de él. Quizás puedas encontrar un algoritmo más sofisticado. – toniedzwiedz