移动方程式deltAheight =(sin(runningtime deltatime) - sin(runni
Movement EquationDeltaHeight = (Sin(RunningTime + DeltaTime) - Sin(RunningTime));
我已经开始在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));
相关文章:
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 为什么 std::round(sin(pi/6)) 不等于 1?
- MacOS 上的 Xcode 11 项目不在一个函数中使用 sin 和 cos:未定义的符号"___sincosf_stret"
- 未解析的外部符号 fabs, cos, sin.
- 如何提高iOS上的std :: sin功能的精度
- sin cos 函数在大于 90 的度数时给出错误的结果
- 如何计算特殊操作(Exp SIN SQRT)的FOP总数和浮点性能
- 移动方程式deltAheight =(sin(runningtime deltatime) - sin(runni
- 用C 创建SIN/COS图
- 使用SIN和COS函数迭代时,NAN会导致
- 虚幻引擎初学者 FMath::Sin.
- 为什么所有核心上的sin(Vector)可以和一个核心上的sin(V)一样快
- 我的神经网络学习sin x,但不学习cos x
- C 程序创建SIN COS和切线值
- 创建快速sin()函数以改善fps?快速sin()函数
- 来自 sin() 生成声音的金属声音
- 设置 std::function 变量以引用 std::sin 函数
- C++ : sin(M_PI/6) = 0.5?
- cos 和 sin 不提供预期的输出
- 将 cos 和 sin 存储到一个向量中并获得奇怪的值