上传备份

master
王兵 1 week ago
parent 57d1396373
commit 691d1fe652

@ -65,9 +65,16 @@ public class MousePathUtil {
* @return
*/
public static List<int[]> generateBezierPath(int x0, int y0, int x1, int y1) {
// 计算两点间距离
double distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));
// 根据距离动态调整控制点偏移范围,避免短距离时过度弯曲
// 距离越短偏移量越小最短距离时偏移范围约为±10最长距离时约为±100
int maxOffset = (int) Math.min(100, Math.max(10, distance / 5));
// 随机生成控制点,增加不确定性(避免总是直线)
int controlX = (x0 + x1) / 2 + random.nextInt(200) - 100;
int controlY = (y0 + y1) / 2 + random.nextInt(200) - 100;
int controlX = (x0 + x1) / 2 + random.nextInt(maxOffset * 2) - maxOffset;
int controlY = (y0 + y1) / 2 + random.nextInt(maxOffset * 2) - maxOffset;
return generateBezierPath(x0, y0, controlX, controlY, x1, y1);
}

Loading…
Cancel
Save

Powered by TurnKey Linux.