生成鼠标渐开线随机移动轨迹 - GenerateInvoluteMouseTrajectory
函数简介
生成鼠标渐开线随机移动轨迹,在指定半径范围内生成渐开线式随机游走轨迹,模拟自然的鼠标移动。
返回数据类型解析:
[{"x": 100, "y": 200}, ...]
接口名称
GenerateInvoluteMouseTrajectory
DLL调用
const char* GenerateInvoluteMouseTrajectory(int64_t instance, int32_t startX, int32_t startY, int32_t radius, int32_t stepDistance, double curvature, double noiseAmplitude)
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。startX(整型数): 起点X坐标(中心点)startY(整型数): 起点Y坐标(中心点)radius(整型数): 移动半径范围(像素)stepDistance(整型数): 轨迹点之间的距离(像素,建议3-10,0表示自动计算为5)curvature(双精度浮点数): 曲率系数(0.5-2.0,越大越弯曲,默认1.0)noiseAmplitude(双精度浮点数): 随机扰动幅度(0-5像素,默认2.0)
示例:
// 生成标准渐开线随机轨迹(中心点500,300,半径100像素)
const char* trajectory = GenerateInvoluteMouseTrajectory(instance, 500, 300, 100, 5, 1.0, 2.0);
if (trajectory != NULL) {
printf("轨迹数据:%s\n", trajectory);
// 解析JSON数据并使用轨迹点
// 可以使用 JsonParse 解析返回的JSON字符串
// 释放内存
FreeStringPtr(instance, trajectory);
}
// 生成精细平滑轨迹(步距3像素)
const char* smoothTrajectory = GenerateInvoluteMouseTrajectory(instance, 500, 300, 100, 3, 1.0, 2.0);
// 生成高曲率轨迹(更弯曲)
const char* curvedTrajectory = GenerateInvoluteMouseTrajectory(instance, 500, 300, 100, 5, 1.8, 2.0);
// 生成低扰动轨迹(更稳定)
const char* stableTrajectory = GenerateInvoluteMouseTrajectory(instance, 500, 300, 100, 5, 1.0, 1.0);
// 使用自动步距(传0)
const char* autoTrajectory = GenerateInvoluteMouseTrajectory(instance, 500, 300, 100, 0, 1.0, 2.0);
返回值
字符串:
返回JSON格式的轨迹点数据,示例:
[
{"x": 500, "y": 300},
{"x": 505, "y": 302},
{"x": 510, "y": 305},
{"x": 514, "y": 309}
]
注意:
DLL调用返回字符串指针地址,需要调用 FreeStringPtr 接口释放内存
参数说明
stepDistance(步距):
- 精细模式:3-5像素,轨迹平滑但点数多
- 标准模式:5-8像素,平衡性能和效果
- 快速模式:8-10像素,点数少但可能不够平滑
- 传入0时自动使用默认值5像素
curvature(曲率系数):
- 0.5:轻微弯曲,接近直线
- 1.0:标准弯曲(推荐)
- 1.5-2.0:高度弯曲,更自然随机
- 超出范围可能导致轨迹异常
noiseAmplitude(扰动幅度):
- 0-1.0:轻微抖动
- 1.0-3.0:标准抖动,模拟人手(推荐)
- 3.0-5.0:明显抖动
- 过大会导致轨迹不自然
应用场景
- 模拟人类自然的鼠标移动行为
- 在指定区域内随机游走
- 防检测的鼠标轨迹生成
- 游戏或自动化测试中的随机移动
