On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 597
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 30.05.19 14:57. Заголовок: Точка в многоугольнике


Всем привет !

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

Может писал кто такой алгоритм ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]


постоянный участник


Пост N: 1528
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.05.19 20:13. Заголовок: Не делал, но в голов..


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7042
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.05.19 20:48. Заголовок: Можно погуглить или ..


Можно погуглить или покурить 3 страницы http://www.cyberforum.ru/cpp-beginners/thread570427.html

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 598
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 31.05.19 09:21. Заголовок: Вот так, вроде, рабо..


Вот так, вроде, работает

lOk:=.F.
pnt:={Y, X} // точка
dim:={{Y,X},{Y,X},,,{Y,X}} // координаты вершин многоугольника

for st=1 to len(dim)-1
cmp:={iif(pnt[1] > dim[st,1],1,0), iif(pnt[1] <= dim[st+1,1],1,0)}
if cmp[1]+cmp[2]!=1
if pnt[2] - dim[st, 2] < (pnt[1] - dim[st, 1]) * ;
(dim[st+1, 2] - dim[st, 2]) / (dim[st+1, 1] - dim[st, 1])
lOk:=! lOk
endif
endif
next

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 5
Зарегистрирован: 26.03.19
ссылка на сообщение  Отправлено: 03.06.19 09:24. Заголовок: решил проверить от н..


решил проверить от нечего делать
набросал код

файл окна wMain.fmg
Скрытый текст



файл программы dot.prg
Скрытый текст



фигура {{1,1},{2,4},{4,5},{5,2},{3,0}}
точка {2,0}
определяется неправильно

Я накосячил или алгоритм?

P.S. А если фигура не выпуклая?

P.S.2 "Все уже украдено до нас"

https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D0%BE%D1%87%D0%BA%D0%B8_%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D1%83

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 599
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 03.06.19 20:43. Заголовок: Многоугольник выпукл..


Многоугольник выпуклый. Это район на карте.
Массив точек {{1,1},{2,4},{4,5},{5,2},{3,0},{1,1}}
1 элемент = последнему

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 600
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет