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

 
 
> Вопрос по алгоритму определения границы кривой, Возник сложный вопрос и нигде не могу найти ответ!
Prinz
сообщение Mar 20 2009, 09:54
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Добрый день!
Помоги пожалуйста, или хотя бы посоветуйте!
Мне стоит задача придумать алгоритм, с помощью которого можно определить только внешнюю границу любой кривой линии, любой любой, и только внешнюю. Внутрь заходить не должны.
В наличии только координыты точек исходной кривой!
Я сам придумал с нуля четыре алгаритма, все по своему хороши, но меняется какое-то уовие и они подвисают.
Посоветуйте что-нибудь, хотя бы где почитать.
Буду рад любому ответу!
Заранее спасибо!
smile.gif


Замечание модератора. Заголовок темы следует давать осмысленный, как того требует п.2.1в Правил форума. Отредактировал.
rezident.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Prinz
сообщение Apr 8 2009, 11:02
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Задачу решил подностью.
Всё с помощью тогоже битмапа.
Теперь есть и внутреении и наружнеи зоны.
И даже фильтрация излишних точек.
Получилось следующее:

Цитата(Ledmaster @ Apr 1 2009, 00:38) *
Забавно, как раз в левом верхнем углу этого скриншота находится мой офис! beer.gif


А мой тоже рядышком. biggrin.gif

Цитата(Палыч @ 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) *
Н-да... Сформулировать задачу Вы так не удосужились... Формулировка: "типа, как на рисунке" - решению задачи не поможет. Повторюсь: грамотная формулировка задачи - половина решения!
Наверное, решение - есть. Но, вот, постановки задачи -нет. Если не принимать во внимание, что границу Вы проводите на некотором расстоянии от трека и "сглаживаете" углы границы, а провести границу по линиям трека, то задача, имхо, элементарная. Обойдите свой трек по отрезкам, в каждом узле или точке пересечения отрезков трека выбирая самый "левый" отрезок трека (т.е. обход трека "по часовой стрелке"), затем проделайте те же действия, но "против часовой стрелки". Выбор самого "левого" ("правого") отрезков осуществляйте по значению углов между последним отрезком границы и отрезками возможного продолжения обхода. Надеюсь, что как определить углы между отрезками Вы догадаетесь самостоятельно...




На счёт задачи формулировки задачи я с Вами полностью согласен.
У меня не очень просто большой опыт спрашивания.
Спасибо за советы.
Буду пробовать.
Идея конечно ясна.
Ещё раз спасибо! rolleyes.gif
Прикрепленные файлы
Прикрепленный файл  screen.bmp ( 165.18 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:55
Рейтинг@Mail.ru


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