以上图为例,两点之间分成了4段,假设是4等分,中间3个拐点的坐标计算方法是:
第1个拐点:点① (点②-点①)*25%
第2个拐点:点① (点②-点①)*50%
第3个拐点:点① (点②-点①)*75%
为了不让每个拐点都在一条直线上,得到坐标加上一个随机数,范围是(-5,5)。
Dim x0=5,y0=312
Dim x,y
Dim 返回值="183,74|342,177|205,223|332,76"
Dim 点数组=split(返回值,"|")
For i = 0 To UBOUND(点数组)
Dim 坐标=split(点数组(i),",")
If i = 0 Then
x = 坐标(0) x0
y = 坐标(1) y0
TouchDown x, y, 1
Else
TouchMove x (坐标(0) x0 - x) * 0.25 rand(), y (坐标(1) y0 - y) * 0.25 rand(), 1, 500
TouchMove x (坐标(0) x0 - x) * 0.5 rand(), y (坐标(1) y0 - y) * 0.5 rand(), 1, 500
TouchMove x (坐标(0) x0 - x) * 0.75 rand(), y (坐标(1) y0 - y) * 0.75 rand(), 1, 500
TouchMove 坐标(0) x0, 坐标(1) y0, 1, 500
x = 坐标(0) x0
y = 坐标(1) y0
End If
Next
Function rand()
rand=int(11*rnd()-5)
End Function
可以看到线条有一定的弯曲度了,不再是直线。
(四)自定义分段数滑动
上面说的是4段,其实也可以用循环来实现
Dim x0=5,y0=312
Dim x,y
Dim 返回值="183,74|342,177|205,223|332,76"
Dim 点数组=split(返回值,"|")
For i = 0 To UBOUND(点数组)
Dim 坐标=split(点数组(i),",")
If i = 0 Then
x = 坐标(0) x0
y = 坐标(1) y0
TouchDown x, y, 1
Else
For j = 1 To 4
TouchMove x (坐标(0) x0 - x) * (j/4) rand(), y (坐标(1) y0 - y) * (j/4) rand(), 1, 500
Next
x = 坐标(0) x0
y = 坐标(1) y0
End If
Next
Function rand()
rand=int(11*rnd()-5)
End Function
在代码中的4就是段数
如果用变量表示,就可以控制段数了。来写个分8段看看
Dim x0=5,y0=312
Dim x,y
Dim 段数=8
Dim 返回值="183,74|342,177|205,223|332,76"
Dim 点数组=split(返回值,"|")
For i = 0 To UBOUND(点数组)
Dim 坐标=split(点数组(i),",")
If i = 0 Then
x = 坐标(0) x0
y = 坐标(1) y0
TouchDown x, y, 1
Else
For j = 1 To 段数
TouchMove x (坐标(0) x0 - x) * (j/段数) rand(), y (坐标(1) y0 - y) * (j/段数) rand(), 1, 500
Next
x = 坐标(0) x0
y = 坐标(1) y0
End If
Next
Function rand()
rand=int(11*rnd()-5)
End Function
段数越多,线条越曲折,不过需要注意如果每一段用时是固定的话,段数越多用时越长,这样也不好,所以把段数和用时也做关联性。
来个28段的效果。
Dim x0=5,y0=312
Dim x,y
Dim 段数=28
Dim 返回值="183,74|342,177|205,223|332,76"
Dim 点数组=split(返回值,"|")
For i = 0 To UBOUND(点数组)
Dim 坐标=split(点数组(i),",")
If i = 0 Then
x = 坐标(0) x0
y = 坐标(1) y0
TouchDown x, y, 1
Else
For j = 1 To 段数
TouchMove x (坐标(0) x0 - x) * (j/段数) rand(), y (坐标(1) y0 - y) * (j/段数) rand(), 1, int(2000/段数)
Next
x = 坐标(0) x0
y = 坐标(1) y0
End If
Next
Function rand()
rand=int(11*rnd()-5)
End Function