按键精灵滑块验证思路(「按键精灵」为了过滑动验证,想出各种办法)

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


留个思考题:

用上面的方法,斜线怎么画出来?


好了就这些内容,觉得还行帮忙点个赞~




=正文完=

相关参考