移动方程式deltAheight =(sin(runningtime deltatime) - sin(runni

Movement EquationDeltaHeight = (Sin(RunningTime + DeltaTime) - Sin(RunningTime));

本文关键字:sin runni deltatime runningtime 方程式 移动 deltAheight      更新时间:2023-10-16

我已经开始在Unreal Engine 4中工作,并在其网站上打开了带有C 的最基本教程。所以这是他们提供的代码

void AFloatingActor::Tick( float DeltaTime )
{
    Super::Tick( DeltaTime );
    FVector NewLocation = GetActorLocation();
    float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
    NewLocation.Z += DeltaHeight * 20.0f;       //Scale our height by a factor of 20
    RunningTime += DeltaTime;
    SetActorLocation(NewLocation);
}

这是对它应该做什么的解释:我们刚刚编写的代码将导致浮动器平稳地上下摆动,使用我们创建的运行时变量来跟踪我们的运动随着时间的推移。

当您编译时,它可以做到这一点,但是它并没有告诉我有关其工作方式或原因的任何信息。让我困扰的是标题说的运动方程式:

deltaheight = sin(运行时间 deltatime) - sin(runningtime)

如果有人可以向我解释这一点,将不胜感激。我要问的是该方程式背后的数学/物理解释或该方程式来自何处。为什么那样。

此函数控制字符的运动(高度),以便随着时间的推移通过正弦波控制运动量。也就是说,在时间0时,它开始相对较快地向上移动,然后向上移动,直到它停止向上移动,然后开始向下移动,速度向下移动,最终会减慢并再次向上移动。它继续以这种方式定期上下移动。

因此,此功能的工作原理是定期调用,然后在此呼叫之间发生时间更改,最后一个是三角洲。最后一次被称为运行时间。因此,计算新位置:

FMath::Sin(RunningTime + DeltaTime)

和旧位置:

FMath::Sin(RunningTime)

然后通过差异来计算更改的位置:

float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));