Java Robot class Simulation menschlicher Bewegung der Maus
Arbeite ich an einem Projekt über remote-control, senden conrdinate x-und y-cursor von client zu server.
Aber
robot.mouseMove(x,y);
wird nur bewegen Sie den cursor an der bestimmten Stelle ohne sich zu bewegen Sie den cursor form ursprüngliche Punkt
Ich finde diese einfach algorthim zu simulieren, die anhaltende Bewegung der Maus
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);
}
Aber das algorthim immer noch zu einfach, es nur eine Bewegung von einem Punkt zum anderen Punkt langsam, die immer noch im Gegensatz zu menschlichen Verhalten.
Habe ich gelesen, einige open-soruce-code über die Fernbedienung aus dem web, und ich finde dieses Projekt
http://code.google.com/p/java-remote-control/
ist mit dem Aufruf der Methode MosueMovement von MouseListener-Klasse, die Sie verwenden, um die Funktionen "ziehen".
Ich gerne wissen, jeder weiß das besser Weg, dies zu tun?
- möchten Sie vielleicht einige Daten zu sammeln aus dem menschlichen Benutzer und verwenden Sie dann verschiedene Möglichkeiten, zu replizieren menschlichen simulation.
- Aus deinem Beitrag scheint es, dass Ihre Haupt-Beschwerde ist, dass die Bewegung der Maus-Geschwindigkeit ist falsch. Wenn das das Haupt-Problem, dann könnten Sie passen Sie Ihren code, um die Maus Bewegung eine Konstante Geschwindigkeit, und dann einstellen, dass die Geschwindigkeit, bis es in der Nähe optimal.
- Vielleicht könnten Sie [Alt]+[Tab] ein paar mal und überprüfen Sie e-mail und facebook auf dem Weg von A nach B. Nein, Ernsthaft, ich denke, die Aufnahme der Maus-Bewegung von ein paar Benutzer könnte ein Interessantes experiment, um diese realistischer. Es wäre cool, um zu berücksichtigen, ein paar Variablen, wie X, Y-position, Geschwindigkeit, Zeit, aktuelle Richtung, ausführen, Rapid Miner und sehen, was können Sie extrahieren aus. Vielleicht würden Sie in der Lage zu kommen mit einer ausgeklügelten Algorithmus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein paar Dinge zu beachten, wenn Sie wollen, um die künstliche Bewegung Natürliche, denke ich:
Dies ist ein wenig kompliziert zu formulieren und in algorithmen, obwohl.
Werfen Sie einen Blick in diesem Beispiel, das ich schrieb. Können Sie diese verbessern, um zu simulieren, was Joey sagte. Ich schrieb es sehr schnell und es gibt viele Dinge, die verbessert werden können (Algorithmus und Klasse design). Beachten Sie, dass ich nur mit Links-rechts-Bewegungen.
Für jedermann in der Zukunft: ich entwickelte eine Bibliothek für Java, die imitiert die menschliche Bewegung der Maus. Das Rauschen/jaggedness in Bewegung, Sinus-Bögen, ein überschwingen der position, ein wenig, etc. Plus die Bibliothek ist geschrieben mit Erweiterungs-und Konfigurationsmöglichkeiten im Auge, so dass jeder kann eine Feinabstimmung vorzunehmen, wenn die Standard-Lösung ist nicht in übereinstimmung mit der Fall. Verfügbar von Maven Central jetzt.
https://github.com/JoonasVali/NaturalMouseMotion