Я начал работать в Unreal Engine 4 и открыл самый простой учебник с C++ на своем веб-сайте. Так что это код, который они предоставляютсяДвижение EquationDeltaHeight = (Sin (RunningTime + DeltaTime) - Sin (RunningTime));
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);
}
И это объяснение того, что он должен делать: Код, который мы только что написали заставит FloatingActors Бобу вверх и вниз плавно, используя переменную RunningTime, которую мы создали для следить за нашим движением с течением времени.
И когда вы его скомпилируете, он делает это, но он ничего мне не говорит о том, как и почему он работает. Дело в том, что ошибки меня в качестве названия говорят уравнение движения:
DeltaHeight = sin (RunningTime + DeltaTime) - грех (RunningTime)
Если кто-нибудь может объяснить мне это было бы весьма признателен. То, что я прошу, было бы математическим/физическим объяснением этого уравнения или объяснением, откуда оно взялось. Почему так.
Я понимаю, что это вычисление что я не понимаю, почему мы используем конкретное уравнение? Например, что я могу сделать: Float DeltaHeight = (FMath :: Sqrt (RunningTime + DeltaTime) - FMath :: Sqrt (RunningTime)); Итак, почему мы используем это конкретное уравнение? Например, почему новая позиция FMath :: Sin (RunningTime + DeltaTime)? – Saizaku
Да, это новая позиция, которую эта функция пытается определить, это изменение положения. Таким образом, он находится в исходном положении. – zdan