二阶贝塞尔曲线模拟人拖动鼠标

Randomize time

Function bezier_move(x1, y1, x2, y2)
    x1 = x1 + Int(5*rnd)
    x2 = x2 + Int(5*rnd)
    y1 = y1 + Int(5*rnd)
    y2 = y2 + Int(5*rnd)    
    
    x3 = x1 + Int((x2-x1)*rnd) + 10
    y3 = y1 + Int((y2-y1)*rnd) + 10
    
    tmp = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)
    TracePrint tmp
    Dim len
    len = Sqr(tmp)
    TracePrint len
    interval = 1/len
    TracePrint interval
    
    //MoveTo x3, y3
    MoveTo x1, y1
    //LeftClick 1
    Delay 10
    LeftDown 1
    Delay 10
    t = 0.00
    For 5000
        x = (1 - t) * (1 - t) * x1 + 2 * t * (1 - t) * x3 + t * t * x2    
        y = (1 - t) * (1 - t) * y1 + 2 * t * (1 - t) * y3 + t * t * y2
        MoveTo x, y
        t = t + interval
        If t > 1 Then 
            Exit For
        End If
        //Delay 1
    Next
    
    LeftUp 1
End Function

For 20
    call bezier_move(120, 210, 320, 480)
Next

ExitScript

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值