Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Принадлежит ли точка области (полигону)   Найти похожие ветки 

 
SergeySA   (2004-02-16 10:43) [0]

Излазил интернет в поисках алгоритма определения принадлежности точти произвольному (не только выпуклуму) многоугольнику.
Может у кого завалялся?


 
MBo ©   (2004-02-16 12:07) [1]

Луч из этой точки проводишь (для упрощения вычислений - по оси X, например), и считаешь количество пересечений со сторонами.
Если нечетное - внутри.
Есть еще winding-метод  - см. описание SetPolyFillMode


 
MBo ©   (2004-02-16 12:39) [2]

З.Ы.
Winding имеет смысл только для самопересекающихся многоугольников


 
SergeySA   (2004-02-17 09:56) [3]

Ну, про методы я знаю, а вот алгоритм бы, чтоб долго не мучаться... с неизвестным результатом....


 
Serrrrg   (2004-02-19 16:25) [4]

http://algolist.manual.ru/maths/geom/belong/poly2d.php


 
CyberStorm   (2004-02-20 18:05) [5]

В GDI есть стандартная функция PtInRegion для определения принадлежности точки заданной области или вернее заданному региону. Функция универсальная, при помощи ее можно определить принадлежность точик не только многоугольнику, но и эллипсу


 
John   (2004-03-01 15:02) [6]


> В GDI есть стандартная функция PtInRegion...
very slow function


 
novice_   (2004-03-04 10:04) [7]

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


 
CyberStorm   (2004-03-04 20:31) [8]

В какие дебри полезли господа :) все гораздо проще:
проводим лучь вправо от точки и считаем пересечения со сторонами многоугольника, если нечетное количество пересечений то точка внутри, если четное или ноль - то снаружи - функция в 10-15 строчек
А функцию PtinRegion я привел потому что это самый простой вариант, не требующих особых затрат в программировании, хотя и медленно работающий, для скорости можно перед вызовом проверять к примеру попадания точек в описывающий прямоугольник



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
14-1083218433
Феликс
2004-04-29 10:00
2004.05.23
Норвегия-Россия: 3:2


14-1083507052
Vlad Oshin
2004-05-02 18:10
2004.05.23
Давайте в шахматишки срубимся


1-1083865549
MAXHO-1
2004-05-06 21:45
2004.05.23
Как можно сделать следующее:


1-1084345406
Stas
2004-05-12 11:03
2004.05.23
как в MDIChild убрать заголовок


3-1082979445
din
2004-04-26 15:37
2004.05.23
Помогите составить запрос