Алгоритм подражать движению мыши, как делает человек? - PullRequest
11 голосов
/ 09 января 2010

Мне нужно протестировать программное обеспечение, которое рассматривает некоторые движения мыши как «жесты». Для такой задачи мне нужно эмулировать движение мыши из точки A в точку B, причем не по прямой линии, а по мере движения реальной мыши - с кривыми, небольшим количеством неровностей и т. Д. Есть ли какое-либо доступное решение (сам алгоритм / код, не библиотека / EXE), что я могу использовать?

Конечно, я сам могу написать простую синусоидальную математику, но это будет очень грубая эмуляция человеческой руки, ведущей мышь. Возможно, такая задача решалась уже много раз, и я могу просто позаимствовать существующий код? :)

Ответы [ 5 ]

9 голосов
/ 09 января 2010

Взгляните на файл Mouse.simba , который является частью SRL Framework , макропрограммы, предназначенной для работы с онлайн-играми, такими как Runescape . Runescape обладает расширенными возможностями обнаружения макросов, поэтому все части платформы SRL были разработаны так, чтобы выглядеть как можно более человечно - в частности, функционирует мышь.

Код написан на Паскале, но его должно быть довольно легко прочитать. Посмотрите на процедуру MMouse(), разработанную BenLand100, она очень реалистично движется, выполняя продвинутые движения, такие как петли и превышение цели, а также постоянно меняющиеся ускорения и направления (также теперь есть движения типа сенсорной панели ноутбука). Если вы хотите проверить это, вам нужно загрузить SIMBA и , чтобы включить SRL-include .

5 голосов
/ 09 января 2010

Как насчет записи некоторых реальных жестов и создания способа их воспроизведения? Это будет так же реально, как и все, что вы можете синтезировать, и это будет повторяться (что хорошо для тестирования).

2 голосов
/ 09 января 2010

Одним из способов запечатлеть это поведение может быть определение невидимой «сетки» на экране, где вы отслеживаете, на какие квадраты движется мышь во время своего путешествия.

Если эта часть работает и записывает должным образом, нет необходимости бомбардировать ее тестами, поскольку вы знаете, что каждый квадрат сетки выполняет свою работу. С этим также легче интерпретировать жест.

2 голосов
/ 09 января 2010

Создайте простое тестовое приложение, которое будет показывать произвольно расположенную точку каждые две секунды. Следуйте за точкой самостоятельно и запишите свои естественные движения мыши.

1 голос
/ 21 октября 2018

Для любого в будущем: я разработал библиотеку для Java, которая делает именно то, что запрашивает OP. Шум / неровности в движении, синусоидальные дуги, немного превышение положения и т. Д. Кроме того, библиотека написана с учетом возможностей расширения и конфигурации, поэтому любой может ее настроить, если решение по умолчанию не соответствует случаю. Доступно в Maven Central сейчас.

https://github.com/JoonasVali/NaturalMouseMotion

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...