算法模拟人类的鼠标运动吗?

时间:2010-01-09 17:20:04

标签: algorithm mouse gesture

我需要测试将某些鼠标移动视为“手势”的软件。对于这样的任务,我需要模拟从A点到B点的鼠标移动,而不是直线,但是当真正的鼠标移动时 - 有曲线,有点锯齿状等等。是否有任何可用的解决方案(算法/代码本身,不是我可以使用的库/ exe)?

当然我可以自己编写一些简单的正弦数学,但这将是一个非常粗略的仿真人类的手领导鼠标。也许这样的任务已经解决了很多次,我可以借用现有的代码吗? :)

5 个答案:

答案 0 :(得分:9)

查看Mouse.simba文件,该文件是SRL Framework的一部分,这是一个旨在与Runescape等在线游戏配合使用的宏程序。 Runescape具有广泛的宏检测功能,因此SRL Framework的所有部分都被开发为尽可能看起来像人一样 - 特别是鼠标功能。

代码在Pascal中,但应该很容易阅读。看看BenLand100的MMouse()程序,它非常逼真地进行高级动作,如循环和超越目标,以及不断变化的加速度和方向(现在还有笔记本电脑触摸板类型的动作)。如果您要测试它,则需要下载SIMBAenable the SRL-include

答案 1 :(得分:5)

如何录制一些真实的手势并让它们回放?这将是你可以合成的任何东西都是真实的,并且它是可重复的(这对测试来说很好)。

答案 2 :(得分:2)

创建一个简单的测试应用程序,每两秒显示一个随机定位的点。自己跟踪点并记录您的自然鼠标移动。

答案 3 :(得分:2)

捕获此行为的一种方法可能是在屏幕上定义一个不可见的“网格”,您可以在其中跟踪鼠标在其旅程中经过的方格。

如果这部分工作和记录正确,就不需要用测试轰炸它,因为你知道每个网格方块都能完成它的工作。使用此功能也可以更轻松地解释手势。

答案 4 :(得分:1)

对于将来的任何人:我为Java开发了一个库,该库完全符合OP的要求。运动中的噪音/锯齿,正弦弧度,位置过冲等。此外,库在编写时就考虑了扩展和配置的可能性,因此,如果默认解决方案与情况不符,则任何人都可以对其进行微调。现在可以从Maven Central获取。

https://github.com/JoonasVali/NaturalMouseMotion