Vb.net 如何使钟摆以给定的、不断变化的速度移动

Vb.net 如何使钟摆以给定的、不断变化的速度移动,vb.net,Vb.net,由于重力的作用,我现在一直在想如何使钟摆以不断变化的速度移动。我试图这样做: 这使得摇锤使用SUVAT以v的最终速度移动,但目前这是通过使其运行多长时间来工作的,我希望摇锤每秒摆动X量,其中X根据v而变化。有人告诉我应该尝试使用多线程,但在研究了这个之后,我对整个事情感到困惑,我不知道从哪里开始,除了我所拥有的以外。你必须从钟摆模型开始,包括它的长度-然后你可以写下所需的公式等。多线程在任何方面都没有关系:我现在有一个钟摆,我可以改变它的弦的长度和它所在的行星,改变重力。它目前以恒定的速率摆动,

由于重力的作用,我现在一直在想如何使钟摆以不断变化的速度移动。我试图这样做:


这使得摇锤使用SUVAT以v的最终速度移动,但目前这是通过使其运行多长时间来工作的,我希望摇锤每秒摆动X量,其中X根据v而变化。有人告诉我应该尝试使用多线程,但在研究了这个之后,我对整个事情感到困惑,我不知道从哪里开始,除了我所拥有的以外。

你必须从钟摆模型开始,包括它的长度-然后你可以写下所需的公式等。多线程在任何方面都没有关系:我现在有一个钟摆,我可以改变它的弦的长度和它所在的行星,改变重力。它目前以恒定的速率摆动,这是我的问题。有人告诉我应该使用多线程,因为它会不断地进行计算。假设它的长度和行星不变,它应该以恒定的速率摆动。它的速度应该随着重力的变化而变化,使它减速或加速。在你发送给meI的链接中,动画中的v将以计时器和谐振子公式开始,角度依赖于时间。然后我会从时间计算角度;速度将是这个过程的结果,可以计算为位置导数。我不能完全理解你们的要求——但你们必须在编码摆的运动之前理解摆的物理特性。
Do Until StopProgram = True
        Do Until Count = v
            Application.DoEvents()

            If DirectionNegative = False Then
                Me.Refresh()
                Count += 1
                Angle += 1
                RadianAngle = Angle * PlaceHolder
                If Angle >= 51 Then
                    Angle = 49
                    DirectionNegative = True
                End If
            ElseIf DirectionNegative = True Then
                Me.Refresh()
                Count += 1
                Angle -= 1
                RadianAngle = Angle * PlaceHolder
                If Angle <= -51 Then
                    Angle = -49
                    DirectionNegative = False
                End If
            End If
        Loop

        Count = 0

    Loop