Java classe de Robot de simulation de l'homme le mouvement de la souris
Je suis en train de travailler sur un projet de contrôle à distance, d'envoyer des conrdinate x et y du curseur à partir du serveur vers le client.
Mais
robot.mouseMove(x,y);
ne se déplacent le curseur sur le point particulier sans avoir à déplacer le curseur de la forme original du point de
J'ai trouver cette simple algorthim pour simuler la poursuite du mouvement de souris
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);
}
Mais ce algorthim encore trop simple, il suffit de déplacer d'un point à un autre point lentement, toujours à la différence de l'homme de se comporter.
J'ai lu quelques ouvert soruce de code sur la télécommande à partir du web, et je trouve ce projet
http://code.google.com/p/java-remote-control/
est l'aide de l'appel de la méthode MosueMovement de MouseListener classe, qu'ils utilisent pour effectuer le "glisser".
Je voudrais savoir est un savoir la meilleure façon de faire cela?
- vous voudrez peut-être obtenir quelques données provenant des utilisateurs et ensuite l'utiliser de différentes manières pour répliquer l'homme de la simulation.
- À partir de votre post, il semble que votre plainte principale est que le mouvement de la souris, la vitesse est mal. Si c'est le problème principal, ensuite, vous pouvez ajuster votre code afin de le rendre le mouvement de la souris une vitesse constante, puis ajuster la vitesse jusqu'à ce qu'elle est proche de l'optimal.
- Vous pourriez peut-être [Alt]+[Tab] un couple de fois et de vérifier e-mail et facebook sur le chemin de A à B. Sérieusement, je pense que l'enregistrement des mouvements de la souris d'un couple d'utilisateurs pourrait être une expérience intéressante pour le rendre plus réaliste. Ce serait cool de prendre en compte un couple de variables, telles que X, Y la position, la vitesse, le temps, le sens du courant, exécutez Rapide Mineur et voir ce que vous pouvez en extraire. Peut-être que vous seriez en mesure de venir avec une version plus sophistiquée de l'algorithme.
Vous devez vous connecter pour publier un commentaire.
Il ya quelques choses à considérer si vous voulez faire de l'artificiel mouvement naturel, je pense:
C'est un peu complexe à formuler des algorithmes, de la bien que.
Prendre un coup d'oeil dans cet exemple que j'ai écrit. Vous pouvez améliorer ce pour simuler ce que Joey a dit. Je l'ai écrit très vite et il y a beaucoup de choses qui peuvent être améliorées (algorithme et de conception de classe). Notez que je ne traite qu'avec de gauche à droite les mouvements.
Pour n'importe qui dans l'avenir: j'ai développé une bibliothèque pour le langage Java, qui imite l'homme le mouvement de la souris. Le bruit/irrégularité dans le mouvement sinusoïdal arcs, dépassement de la position d'un bit, etc. En Plus de la bibliothèque est écrite avec l'extension et possibilités de configuration à l'esprit, donc n'importe qui peut l'affiner, si la solution par défaut ne correspond pas le cas. Disponible à partir de Maven Central maintenant.
https://github.com/JoonasVali/NaturalMouseMotion