大家好,我是公衆号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=0
Dim arrx={18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16}
Dim x=79
Dim y=700
Dim d=300
TouchDown x,y, 1
For i = 0 To UBound(arrx)
n = n arrx(i) / 1000 * d
TouchMove x n,y,1,1
Next
Delay 1000
TouchUp 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=0
Dim arrx={18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16}
Dim arry={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 x=79
Dim y=700
Dim d=300
TouchDown x,y, 1
For i = 0 To UBound(arrx)
n = n arrx(i) / 1000 * d
TouchMove x n,y arry(i),1,1
Next
Delay 1000
TouchUp 1
留個思考題:
用上面的方法,斜線怎麼畫出來?
好了就這些内容,覺得還行幫忙點個贊~
=正文完=
,