Перемещение объекта по кривой Безье, совмещение с вращением

Мой движок (AndEngine) предоставляет модификатор для перемещения объекта по кривой Безье, просто предоставляя координаты 3 или 4 точки.

В моей игре я перемещаю некоторых птиц с решительными 3 очками. Тем не менее, это выглядит подделкой, потому что птицы всегда указывают направление.

Это похоже на математический вопрос, но я думаю, что я должен публиковать в Stackru вместо Math Exchange: Как определить угол поворота (в радианах или градусах) для птиц за раз?

2 ответа

Решение

Вы возьмете две точки, скажем, P1 и P2, найдете угол между ними, а затем поверните свою птицу на этот угол.

    deltaX = nextPointX - YourBirdX;
    deltaY = NextPointY - YourBirdY;
    degree = ((Math.atan2(deltaY, deltaX)));
    angle = degree * 180 / 3.14;

    if(angle<0)
    {
        angle = 360+angle;
    }

Я надеюсь, что это поможет вам.

Как насчет (bezier(path, position + epsilon) - bezier(path, position)) / epsilon? Или, если вы хотите это без эпсилона, посмотрите на первый вывод кривой Безье.

Другие вопросы по тегам