|
Интерполяция кривой в пространстве, Построение максимально гладкой кривой по набору точек X, Y, Z |
|
|
|
Mar 1 2012, 19:15
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 29-10-10
Пользователь №: 60 513

|
Добрый день. бьюсь с такой алгоритмической задачей: Задан случайный массив точек в пространстве, т.е. коррдинат X, Y, Z, плюс начальный вектор движения, больше ничего. Требуется интерполировать по ним график (т. е. провести условный летающий объект через все точки), желательно с непрерывностью до второй производной. Мое видение возможных подходов:
1) Введение четвёртой независимой переменной, например времени, и интерполяция отдельно функций x(t), y(t), z(t). Подробно не прорабатывал, но так как время прохождения точек неизвестно (более того, это время нужно найти в ходе решения), предполагаю что данный метод мне не подходит.
2) Интерполяция двух координат от третьей, например y(x) и z(x). Пробовал реализовать, в соответствующих плоскостях YOX и ZOX получаются гладкие кривые, но построенная по ним трехмерная кривая имеет в некоторых точка изломы (возможно в некоторых точках они просто видимы невооруженным глазом, а на самом деле присутствуют везде и данный подход совсем не подходит для задачи построения гладкой траектории).
Вообщем я в замешательстве. Какой из подходов стоит развивать, есть ли другие варианты решения?
|
|
|
|
|
 |
Ответов
|
Mar 10 2012, 08:05
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 29-10-10
Пользователь №: 60 513

|
Спасибо всем за советы, задача в общих чертах решилась, осталось на нее навешивать дополнительные плюшки. Рассматривал движение точки под поперечным ускорением, массу и силу вводить не пришлось, оперировал исключительно скоростью, ускорением и вызванным ими прирощением координаты. Вектор скорости под действием ускорения плавно поворачивался в сторону цели, и когда угол между скоростью и направлением на цель становился меньше порога, ускорение отключалось. Решил задачу сперва для плоскости, увидел что при переходе к пространству я зароюсь с геометрией, и схитрил: на каждом отрезке строил плоскость, заданную вектором входной скорости и самим отрезком, работал с ней, потом пересчитывал обратно к трехмерным координатам.
От изначальной навязчивой идеи интерполировать траекторию теми же сплайнами пришлось отказаться, математика все таки слишком далеко от логики полёта реального объекта, имеющего скорость, инерцию, ограниченные перегрузки
|
|
|
|
Сообщений в этой теме
Jack_of_Shadows Интерполяция кривой в пространстве Mar 1 2012, 19:15 scifi Можно наделить точку массой и дать ей реактивный д... Mar 1 2012, 20:22 AndreyVN Цитата(Jack_of_Shadows @ Mar 1 2012, 22:1... Mar 2 2012, 17:28 Jack_of_Shadows ЦитатаВидимо, есть еще какой-то критерий оптимизац... Mar 2 2012, 21:30 AndreyVN Цитата(Jack_of_Shadows @ Mar 3 2012, 00:3... Mar 3 2012, 19:01 Mc_off Мне кажется подойдет сплайновая интерполяция. По к... Mar 3 2012, 05:38  Jack_of_Shadows Цитата(scifi @ Mar 11 2012, 12:10) Кстати... Mar 12 2012, 19:24   scifi Цитата(Jack_of_Shadows @ Mar 12 2012, 23... Mar 12 2012, 19:50 Jack_of_Shadows Даже с моим небольшим знанием физики про центростр... Mar 14 2012, 19:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|