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


Автор: _hunter 18.5.2005, 19:24
Добрый день.

Есть такая задача.
Мы движемся по некоторой кривой ( но не совсем по кривой, а в пределах некоторого растояния от этой кривой )
Нужно определить пришли ли мы в начало этой кривой.

Заранее благодарю за ответ...

Автор: podval 18.5.2005, 19:53
Эту задачу надо решить в принципе или запрограммировать?

Автор: _hunter 18.5.2005, 22:49
мне и алгоритма достаточно будет ( сам как-нить запрограмлю... )

Автор: cardinal 18.5.2005, 23:38
Ну может достаточно как бы точки кривой красить. Ты идешь вдоль нее (рядом с ней) и если в друг ты не можешь сделать шаг на новую незакрашенную точку (встать рядом со следующей точкой), то значит фильму конец. Ну а первую точку надо покрасить в какой-нибудь другой цвет, чтобы отличать ее от других закрашенных...

Автор: _hunter 19.5.2005, 11:29
проблема в том, что и сама кривая довольно таки большая и растояние до нее. если красить все точки -- всю оперативку забью...

Автор: De Gray 19.5.2005, 11:36
По-пробуй запоминать направление из текущей точки на начальную(вектор), как только вектор повернется на 2*pi -- кривая замкнулась.(Это вроде стандартный способ)

Автор: _hunter 19.5.2005, 11:38
он подходит только для выпуклых кривых...

Автор: gepard 20.5.2005, 07:52
А чём проблема? Есть вершины этой кривой? Когда идёт обработка некоторой вершины, надо смотреть равна ли она по координатам первой. Если да - мы пришли в начало - эта прямая замкнута. Если нет - идём дальше, если конец - не замкнута.

Автор: val 20.5.2005, 09:59
Цитата
А чём проблема? Есть вершины этой кривой? Когда идёт обработка некоторой вершины, надо смотреть равна ли она по координатам первой. Если да - мы пришли в начало - эта прямая замкнута. Если нет - идём дальше, если конец - не замкнута.


Мне кажется, что решение резонно, но только надо будет ввести дельту, если отклонение текущей вершины относительно начальной меньше этой самой дельты, то мы пришли в точку от которой начали движение. Отклонение можно считать как корень из суммы квадратов разностей координат текущей и стартовой вершин.

Автор: _hunter 20.5.2005, 12:59
вершины есть, но обработка пути идет по ребрам. причем отклонение ( или отход... ) от этих ребер вполне может быть больше размеров кривой

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