Обратная интерполяция с углами, большими, чем Pi?

#c #math

#c #математика

Вопрос:

Я создаю API для скелетной анимации. Прямо сейчас это работает нормально, за исключением, допустим, того, что вы хотите перейти от 2.0f к 1.0f. В конечном итоге это приведет к выполнению почти полного круга, когда должно выполняться только около 1/6 от одного.

Я думаю, у меня есть способ найти это, он должен идти против часовой стрелки, но я не уверен, как его использовать с этим:

     bool CCW = fmod( (endKeyFrame->getAngle() - 
            startKeyFrame->getAngle()   TWO_PI), TWO_PI) > 3.141592;


        remainingInterpolationFrames = endKeyFrame->getFrame() - startKeyFrame->getFrame();

        //Linear interpolation

            curIncreaseAngle = (endKeyFrame->getAngle() - 
                startKeyFrame->getAngle()) / remainingInterpolationFrames;
  

Спасибо

Ответ №1:

Я думаю, это может помочь. Особенно разделы 8,9 и 30.