Показать сообщение отдельно
Старый 16.02.2011, 23:49   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Рассчёт траектории движения с поворотом.

Было бы проще, если бы код был привязан ко времени. Потому что можно было бы посчитать за сколько времени точка повернется на 360 градусов. Потом исходя из этого времени рассчитать длину окружности, описываемою точкой (т.к. постоянны скорость движения и скорость поворота я думаю это будет окружность). Далее можно было бы посчитать диаметр/радиус окружности. По известному радиусу и направлению движения в начальный момент времени можно попробовать найти центр окружности и составить формулы движения по каждой координате в зависимости от параметра времени (тут проблема - определить какой из двух центров окружностей правильный).

А вообще бы посоветовал не париться, а использовать sin и cos с нужным периодом и амплитудой + смещение в качестве центра окружности

типа
x = A*cos(P*t + p0) + centerX;
y = centerY;
z = A*sin(P*t + p0) + centerZ;
A и P - константы, t - параметр

A - радиус окружности
P = 2*pi/(количество секунд в периоде)
t - время в секундах, прошедшее со старта игры

p0 - сдвиг по фазе т.е. начальная точка на траектории - от 0 до 2*pi
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (16.02.2011)