Visual Basic.NET-平滑缓和效果

Visual Basic.NET-平滑缓和效果,.net,winforms,visual-studio-2010,animation,equation,.net,Winforms,Visual Studio 2010,Animation,Equation,我的目标是让一个窗体在打开后做一个轻松的动画。我想让我的Windows窗体应用程序从屏幕右下角滑入,然后在任务栏顶部停止,并播放一个平滑的减缓动画。我更喜欢《金融时报》的指数宽松公式 我已经尝试将一些公式移植到我的.Net应用程序中,但到目前为止还没有成功。我的放松要么什么都不做(保持不变),要么停在一个完全随机的数字上,远离我选择的数字,要么继续以越来越快的速度进入无穷远 这是我目前掌握的代码: 公共类表单1 尺寸t为双精度=1 尺寸b为双精度=0 尺寸c为双精度=0 尺寸d为双精度=100

我的目标是让一个窗体在打开后做一个轻松的动画。我想让我的
Windows窗体应用程序
从屏幕右下角滑入,然后在任务栏顶部停止,并播放一个平滑的减缓动画。我更喜欢《金融时报》的指数宽松公式

我已经尝试将一些公式移植到我的.Net应用程序中,但到目前为止还没有成功。我的放松要么什么都不做(保持不变),要么停在一个完全随机的数字上,远离我选择的数字,要么继续以越来越快的速度进入无穷远

这是我目前掌握的代码:

公共类表单1
尺寸t为双精度=1
尺寸b为双精度=0
尺寸c为双精度=0
尺寸d为双精度=1000
尺寸y_位置为双=0
私有子表单1_Load(发送方作为System.Object,e作为System.EventArgs)处理MyBase.Load
计时器1.间隔=1
Timer1.Enabled=True
端接头
公共子循环()
t=t/(d/2)
如果t<1,则
t=t+1
y_pos=c/2*数学功率(2,10*(t-1))+b
其他的
t=t-1
y_pos=c/2*(-Math.Pow(2,-10*t)+2)+b
如果结束
端接头
私有子Timer1_Tick(发送方作为System.Object,e作为System.EventArgs)处理Timer1.Tick
放松循环()
标签1.Text=y_位置
端接头
末级
在这段代码中,什么都没有发生。My
y\u pos
变量冻结在0


y_pos
是一个变量,我将使用它为程序提供它应该位于的y坐标。我将处理代码,以便在以后实际放置表单。现在:我使用一个变量,只是为了调试而将其打印到标签上。

c和b变量为0。所以你的数学只能得出0。使用调试器查找类似的缺陷。这给了我一个完全随机的数字。它根本不动。我将B和C的值都改为2(以生成一对数字)
Public Class Form1

Dim t As Double = 1
Dim b As Double = 0
Dim c As Double = 0
Dim d As Double = 1000

Dim y_pos As Double = 0

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 1
    Timer1.Enabled = True
End Sub

Public Sub easing_loop()

    t = t / (d / 2)
    If t < 1 Then
        t = t + 1
        y_pos = c / 2 * Math.Pow(2, 10 * (t - 1)) + b
    Else
        t = t - 1
        y_pos = c / 2 * (-Math.Pow(2, -10 * t) + 2) + b
    End If


End Sub

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    easing_loop()
    Label1.Text = y_pos
End Sub
End Class