реклама на сайте
подробности

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


Участник
*

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



Добрый день. бьюсь с такой алгоритмической задачей:
Задан случайный массив точек в пространстве, т.е. коррдинат X, Y, Z, плюс начальный вектор движения, больше ничего. Требуется интерполировать по ним график (т. е. провести условный летающий объект через все точки), желательно с непрерывностью до второй производной. Мое видение возможных подходов:

1) Введение четвёртой независимой переменной, например времени, и интерполяция отдельно функций x(t), y(t), z(t). Подробно не прорабатывал, но так как время прохождения точек неизвестно (более того, это время нужно найти в ходе решения), предполагаю что данный метод мне не подходит.

2) Интерполяция двух координат от третьей, например y(x) и z(x). Пробовал реализовать, в соответствующих плоскостях YOX и ZOX получаются гладкие кривые, но построенная по ним трехмерная кривая имеет в некоторых точка изломы (возможно в некоторых точках они просто видимы невооруженным глазом, а на самом деле присутствуют везде и данный подход совсем не подходит для задачи построения гладкой траектории).

Вообщем я в замешательстве. Какой из подходов стоит развивать, есть ли другие варианты решения?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jack_of_Shadows
сообщение Mar 2 2012, 21:30
Сообщение #2


Участник
*

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



Цитата
Видимо, есть еще какой-то критерий оптимизации траектории. (?)

Заданный модуль скорости (постоянный, или меняющийся от точки к точке), гладкость до второй производной, ну и условия реализма - ограничение на крутизну виражей, более-менее логичные траектории а не кривые с петлями.

Сплайны по тройкам точек - звучит логично, только предполагаю трудности в их стыковке, ведь две соседние плоскости вполне могут быть скажем перпендикулярны друг другу.

Уравнения сглаживающие углы - если допустить прохождение не через точки, а примерно рядом, то вроде возможно достаточно простое решение. В ином случае с ходу сложно придумать.

Вот движение между точками под действием заданного поперечного ускорения (которое корректировало бы направление движения, но не изменяло модуль скорости) меня заинтересовало. К несчастью физика мне дается хуже чем математика, поэтому пока раздумываю над решением

Сообщение отредактировал Jack_of_Shadows - Mar 2 2012, 21:31
Go to the top of the page
 
+Quote Post
AndreyVN
сообщение Mar 3 2012, 19:01
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Цитата(Jack_of_Shadows @ Mar 3 2012, 00:30) *
Вот движение между точками под действием заданного поперечного ускорения (которое корректировало бы направление движения, но не изменяло модуль скорости) меня заинтересовало. К несчастью физика мне дается хуже чем математика, поэтому пока раздумываю над решением


Вроде как вырисовываются 3 независимых уравнения движения mx''=Fx, my""=Fy, mz''=Fz
Для которых даны начальные координаты x0,y0,z0, и начальные скорости vx0, vy0, vz0.
Нужно найти силы (не зависящие от времени) при которых траектория пройдет
через координаты x1,y1,z1, и получть аналитический вид траектории.

Если такая задача решится, у вас на руках аналитическое решение, для которого
только и надо будет подставлять координаты и скорости в точке n
и отрисовывать кривульки до точки n+1.

Чутье подсказывает, что задача решается.

Хотя, я бы предпочел сплайны для "скользящих" плоскостей. 2 предыдущих точки + 1 последующая.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016