|
Вопрос по алгоритму определения границы кривой, Возник сложный вопрос и нигде не могу найти ответ! |
|
|
|
Mar 20 2009, 09:54
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Добрый день! Помоги пожалуйста, или хотя бы посоветуйте! Мне стоит задача придумать алгоритм, с помощью которого можно определить только внешнюю границу любой кривой линии, любой любой, и только внешнюю. Внутрь заходить не должны. В наличии только координыты точек исходной кривой! Я сам придумал с нуля четыре алгаритма, все по своему хороши, но меняется какое-то уовие и они подвисают. Посоветуйте что-нибудь, хотя бы где почитать. Буду рад любому ответу! Заранее спасибо! Замечание модератора. Заголовок темы следует давать осмысленный, как того требует п.2.1в Правил форума. Отредактировал. rezident.
|
|
|
|
|
 |
Ответов
|
Apr 8 2009, 11:02
|
Частый гость
 
Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121

|
Задачу решил подностью. Всё с помощью тогоже битмапа. Теперь есть и внутреении и наружнеи зоны. И даже фильтрация излишних точек. Получилось следующее: Цитата(Ledmaster @ Apr 1 2009, 00:38)  Забавно, как раз в левом верхнем углу этого скриншота находится мой офис!  А мой тоже рядышком.  Цитата(Палыч @ Apr 1 2009, 13:53)  Для тех, кто слаб в математике… Пусть на плоскости тремя точками заданы два отрезка АВ и ВС. Точка А не совпадает с точкой В; точка В не совпадает с точкой С. Точки заданы координатами x и y: точка А, например, имеет координаты xa и ya. Определить угол fi образованный отрезком ВС и продолжением отрезка АВ (см. рисунок).
Для определения угла fi в диапазоне от минус pi до плюс pi необходимо получить синус и косинус угла. Косинус угла можно получить, если вспомнить скалярное произведение векторов AB * BC * Cos fi = ABx * BCx + ABy * BCy где AB и ВС – длина соответствующего вектора (отрезка); т.е. AB = Sqrt ( (xb-xa)^2 + (yb-ya)^2) ABx и BCx– проекции вектора (отрезка) на ось Х; т.е. ABx = xb – xa ABy и BСy – проекции вектора (отрезка) на ось Y
Синус угла получаем из произведения векторов AB * BC * Sin fi = ABx * BCy - ABy * BCx Обозначения – см. выше.
По найденным синусу и косинусу определяем угол. Обычно, в языках высокого уровня для этого используют функцию atan2(Sin fi,Cos fi). Спасибо за консультацию. С этими азами знаком. Но всё равно спасибо. Цитата(Палыч @ Mar 31 2009, 19:45)  Н-да... Сформулировать задачу Вы так не удосужились... Формулировка: "типа, как на рисунке" - решению задачи не поможет. Повторюсь: грамотная формулировка задачи - половина решения! Наверное, решение - есть. Но, вот, постановки задачи -нет. Если не принимать во внимание, что границу Вы проводите на некотором расстоянии от трека и "сглаживаете" углы границы, а провести границу по линиям трека, то задача, имхо, элементарная. Обойдите свой трек по отрезкам, в каждом узле или точке пересечения отрезков трека выбирая самый "левый" отрезок трека (т.е. обход трека "по часовой стрелке"), затем проделайте те же действия, но "против часовой стрелки". Выбор самого "левого" ("правого") отрезков осуществляйте по значению углов между последним отрезком границы и отрезками возможного продолжения обхода. Надеюсь, что как определить углы между отрезками Вы догадаетесь самостоятельно... На счёт задачи формулировки задачи я с Вами полностью согласен. У меня не очень просто большой опыт спрашивания. Спасибо за советы. Буду пробовать. Идея конечно ясна. Ещё раз спасибо!
Прикрепленные файлы
screen.bmp ( 165.18 килобайт )
Кол-во скачиваний: 18
|
|
|
|
Сообщений в этой теме
Prinz Вопрос по алгоритму определения границы кривой Mar 20 2009, 09:54 Rst7 Кривая замкнута, как я понимаю? Mar 20 2009, 10:11 Prinz Цитата(Rst7 @ Mar 20 2009, 15:11) Кривая ... Mar 20 2009, 10:29 VladimirYU Цитата(Prinz @ Mar 20 2009, 12:54) Мне ст... Mar 20 2009, 10:12 Rst7 И что значит, определить внешнюю границу? Продемон... Mar 20 2009, 10:14 Палыч Цитата(Prinz @ Mar 20 2009, 12:54) Мне ст... Mar 20 2009, 13:01 xemul Скорее всего, более общая постановка задачи: опред... Mar 20 2009, 14:11 DpInRock Рисуем касательную в конкретной точке. Дальше поло... Mar 20 2009, 18:10 Prinz Вот, как это должно выглядить!
Вчера никак не ... Mar 21 2009, 08:27 Палыч Цитата(Prinz @ Mar 21 2009, 11:20) Вот, к... Mar 21 2009, 08:29 Prinz А кто-нибудь знаком с файлом фомата .plt для OziEx... Mar 21 2009, 08:53 zzzzzzzz Вся исследуемая площадь устанавливается, исходя из... Mar 21 2009, 08:54 Prinz Цитата(zzzzzzzz @ Mar 21 2009, 13:54) Впр... Mar 21 2009, 09:04  zzzzzzzz Цитата(Prinz @ Mar 21 2009, 12:02) Не над... Mar 21 2009, 09:06   Prinz Цитата(zzzzzzzz @ Mar 21 2009, 14:06) Это... Mar 21 2009, 09:23    VladimirYU Цитата(Prinz @ Mar 21 2009, 12:16) Я же В... Mar 21 2009, 09:23     Prinz Цитата(VladimirYU @ Mar 21 2009, 14:23) Р... Mar 21 2009, 09:28      Палыч Попробую протелепатить... Вот (возможно, неверная ... Mar 21 2009, 09:32       Prinz Цитата(Палыч @ Mar 21 2009, 14:32) Решени... Mar 21 2009, 09:55        Палыч Цитата(Prinz @ Mar 21 2009, 12:45) Спасиб... Mar 21 2009, 10:00    Ledmaster Цитата(Prinz @ Mar 21 2009, 14:23) Там ук... Mar 21 2009, 10:11     Prinz Цитата(Ledmaster @ Mar 21 2009, 15:11) С ... Mar 22 2009, 10:00      Палыч Цитата(Prinz @ Mar 22 2009, 13:00) А что ... Mar 22 2009, 11:02  zzzzzzzz Цитата(Prinz @ Mar 21 2009, 12:04) И ваш ... Mar 22 2009, 11:46 Artem_Petrik По моему, то, что у вас точки соединены линиями вс... Mar 22 2009, 10:36 Prinz Цитата(Artem_Petrik @ Mar 22 2009, 15:36)... Mar 22 2009, 13:52  blackfin Цитата(Prinz @ Mar 22 2009, 16:52) Нет, т... Mar 22 2009, 14:16 Goodefine Цитата(Prinz @ Mar 21 2009, 12:28) ...При... Mar 22 2009, 11:36 Prinz Сегодня попробовал написать алгоритм по совету.
НА... Mar 23 2009, 11:40 blackfin Цитата(Prinz @ Mar 23 2009, 14:40) Сегодн... Mar 23 2009, 11:46  Prinz Цитата(blackfin @ Mar 23 2009, 16:46) А ч... Mar 31 2009, 12:01   Палыч Цитата(Prinz @ Mar 31 2009, 15:01) Я Вам ... Mar 31 2009, 14:45    Палыч Цитата(Палыч @ Mar 31 2009, 17:45) Надеюс... Apr 1 2009, 08:53   Ledmaster Цитата(Prinz @ Mar 31 2009, 18:01) Вот, к... Mar 31 2009, 19:38 Палыч Цитата(Prinz @ Mar 23 2009, 14:40) А кто-... Mar 23 2009, 11:52 _Pasha Цитата(Prinz @ Mar 23 2009, 14:40) Нисего... Mar 23 2009, 12:22 Ledmaster Цитата(Prinz @ Mar 23 2009, 16:40) Нисего... Mar 23 2009, 17:38 zzzzzzzz Опять "тень на плетень" навели, - област... Apr 8 2009, 11:34 Prinz Цитата(zzzzzzzz @ Apr 8 2009, 16:34) Опят... Apr 21 2009, 07:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|