Перемещение объекта по кривой Безье, совмещение с вращением
Мой движок (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
? Или, если вы хотите это без эпсилона, посмотрите на первый вывод кривой Безье.