按键精灵滑块验证思路(「按键精灵」为了过滑动验证,想出各种办法)
Posted
篇首语:人并不是因为美丽才可爱,而是因为可爱才美丽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了按键精灵滑块验证思路(「按键精灵」为了过滑动验证,想出各种办法)相关的知识,希望对你有一定的参考价值。
按键精灵滑块验证思路(「按键精灵」为了过滑动验证,想出各种办法)
大家好,我是公众号3分钟学堂的郭立员~
之前也做过模拟滑动的效果,是通过随机做的,虽然已经很随机,但是感觉不像是人手动滑动的效果,少了那种比较自然的停顿感。

看这个图记录我手动滑的路径,图中我标注了几个位置,这些位置的红点比较密集,说明滑动到此处速度变缓了(停顿)。
怎么才能模拟这个停顿感呢,我想到一个方法是直接原封的复刻下来。
怎么复刻?
假设线的长度是1000单位,记录下相邻两个点之间的距离,这些距离作为我们滑动的间隔,然后循环执行滑动。
这里我说的是1000单位,并不是1000像素或者别的,因为它是一个比例,比如300像素的距离,那么分成1000份,每一份是0.3像素。
18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16
这里我随便画了一条线,它的间距是上面这组数字,看一下用这组数字画出的线的效果。

这是一个300像素长度的线,可以看到它的停顿点是有明显的疏密效果的。
这个效果的代码是:
Dim n=0Dim arrx=18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16Dim x=79Dim y=700Dim d=300TouchDown x,y, 1For i = 0 To UBound(arrx) n = n + arrx(i) / 1000 * d TouchMove x+n,y,1,1 NextDelay 1000TouchUp 1
代码中(x,y)是起始点,d是滑动的长度,其他都是固定的。
是不是想手动划线还有弧度的,并不是一条直线,这个效果也是可以做出来的,所谓弧度,就是纵坐标的变化,那么我做一个存储纵坐标变化的数组。
0,1,0,0,-1,-2,-1,0,-1,0,1,-1,-1,-1,-1,0,0,0,-1,0,-1,1,-1,-1

效果就出来了,这里边数值越大,线的变化越明显。
Dim n=0Dim arrx=18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16Dim arry=0,1,0,0,-1,-2,-1,0,-1,0,1,-1,-1,-1,-1,0,0,0,-1,0,-1,1,-1,-1Dim x=79Dim y=700Dim d=300TouchDown x,y, 1For i = 0 To UBound(arrx) n = n + arrx(i) / 1000 * d TouchMove x+n,y+arry(i),1,1 NextDelay 1000TouchUp 1
留个思考题:
用上面的方法,斜线怎么画出来?
好了就这些内容,觉得还行帮忙点个赞~
=正文完=
相关参考