Плавное перемещение одного объекта к другому - VB

Формулировка задачи:

Здравствуйте, есть у меня две точки, которые находятся на неком расстоянии друг от друга по диагонали. Кратчайшее расстояние нахожу по формуле:
Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
Вопрос: как переместить одну точку к другой, но плавно по этой гипотенузе? Спасибо

Код к задаче: «Плавное перемещение одного объекта к другому - VB»

textual
Option Explicit
Dim X1 As Single, X2 As Single, Y1 As Single, Y2 As Single, X3 As Single, Y3 As Single
Dim S As Single, dS As Single, rS As Single
Dim sinA As Single, cosA As Single
Private Sub Command1_Click()
    Timer1.Enabled = True
End Sub
Private Sub Form_Load()
    Timer1.Enabled = False
    Scale (-10, 10)-(10, -10)
    DrawWidth = 4
    X1 = 1: Y1 = 2
    X2 = 7: Y2 = 9
    S = Sqr((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)
    dS = S / 100
    sinA = (Y2 - Y1) / S
    cosA = (X2 - X1) / S
End Sub
Private Sub Timer1_Timer()
    If rS >= S Then Timer1.Enabled = False
    rS = rS + dS
    Y3 = sinA * rS + Y1
    X3 = cosA * rS + X1
    Cls
    PSet (X1, Y1)
    PSet (X2, Y2)
    PSet (X3, Y3)
End Sub

10   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ