12

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

当然,我可以自己编写一些简单的正弦数学,但这将是对人手牵着老鼠的非常粗略的模拟。也许这样的任务已经解决了无数次了,我可以借用现有的代码吗?:)

4

5 回答 5

10

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

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

于 2010-01-09T17:48:24.040 回答
6

对于未来的任何人:我为 Java 开发了一个库,这正是 OP 所要求的。运动中的噪音/锯齿状、正弦曲线、位置过冲等等。另外,编写库时考虑了扩展和配置的可能性,因此如果默认解决方案与案例不匹配,任何人都可以对其进行微调。现在可以从 Maven Central 获得。

https://github.com/JoonasVali/NaturalMouseMotion

于 2018-10-20T22:17:09.690 回答
5

录制一些真实的手势并制作回放它们怎么样?这将与您可以合成的任何东西一样真实,并且可以重复(这对测试很有好处)。

于 2010-01-09T17:24:04.993 回答
2

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

于 2010-01-09T17:44:22.190 回答
2

捕捉这种行为的一种方法是在屏幕上定义一个不可见的“网格”,您可以在其中跟踪鼠标在其旅程中移动的方格。

如果这部分工作和记录正确,就没有必要用测试来轰炸它,因为你知道每个方格都可以完成它的工作。解释手势也变得更容易。

于 2010-01-09T17:55:01.483 回答