Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Алгоритм движения по траектории...


Автор: Jolyn 25.10.2003, 14:17
Здравствуйте!
Очень надеюсь, что кто-нибудь подскажет мне возможные пути решения след. задачи.
Я пишу программку на VC++, которая должна промоделировать движение объекта по некоторой заданной траектории (в БД хранятся "опорные" точки этой траектории). Есть ли какие-нибудь оптимальные способы просчитывания текущей координаты объекта (если считать "в лоб" - получится много "корней" и "степеней" с учетом того, что объектов на экране много). Может быть, есть какие-нибудь ссылки в интернете на подобную тему? Буду очень признательна...

Автор: RAN 25.10.2003, 16:42
Модератор: Перенесено из C++

Автор: DENNN 25.10.2003, 17:20
Я думаю стоит поискать различные алгоритмы интерполяции функции по ее контрольным точкам. Если траектория криволинейная, то возможно удобными окажутся сплайны.
А о том, как оптимально просчитать следующую точку - то это вопрос слишком размытый, все зависит от алгоритма самой программы. Если это OpenGL приложение, то возможно придется запустить несколько нитей, чтоб распараллелить выполняемые задачи => надо учить средства синхронизации много поточных приложений. Кроме того, видимо, для хранения и быстрого доступа к данным не лишне будет прочитать про STL smile.gif

Автор: podval 25.10.2003, 18:38
Также рекомендую сплайны.
Если взять сплайны минимального шаблона, то вычислительных затрат будет как раз очень мало. Ну и степень сплайна не надо брать очень уж большую.

Автор: Elve 2.11.2003, 20:29
ну не знаю сплайнами ли будет легчеconfused.gifconfused.gif
если сплайны не подойдут попробуйте полином Ньютона, а если
узловые точки идут с постоянным шагом то вообще все довольно легко
если воспользоваться конечными разностями
я думаю что все получится

Автор: frost 2.11.2003, 20:49
Цитата
полином Ньютона

при большом числе точек - очень сильно размахивается в стороны. Может, лучше Безье?

Автор: neutrino 2.11.2003, 22:27
Оставьте все интерпляционные полиномы. Сплайн легче и линия красивей получится.

Автор: DENNN 3.11.2003, 11:37
Задача поставлена не точно. Может быть автору просто необходимо по ломанной двигаться? smile.gif

Автор: neutrino 3.11.2003, 13:19
Ну тогда пусть смотрит соседнюю тему: "Как составить уравнение прямой" smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)