|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.02.2007, 15:07 | #1 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Точка на полигоне?
Помогите, пожа-а-алуйста
У меня массив точек полигона(многоугольника). Требуеться: Определить, находиться ли точка в пределах полигона. |
06.02.2007, 18:41 | #2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
праводим из точки луч горизонтально,
нужно определять кол-во пересечений со стронами. нечетное -> точка внутри.
Берегите друг друга!
|
07.02.2007, 13:05 | #3 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Реализация
Спасибо за совет!
Но возник вопрос: как это реализовать? Это нужно проверить каждый отрезок на пересечение с проведеной прямой, я правильно понимаю? |
07.02.2007, 13:16 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Да, для каждой стороны многоугольника нужно проверить наличие в ней точки с ординатой, равной ординате заданной контрольной точки.
Реализуется простым сравнением ординат двух соседних вершин Ym, Ym+1 многоугольника с ординатой Yk контрольной точки. Если Yk находится между Ym и Ym+1, то пересечение есть. Последний раз редактировалось mihali4; 07.02.2007 в 13:26. |
07.02.2007, 14:10 | #5 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Спасибо всем!
Большое спасибо всем за советы!!!
|
11.02.2007, 14:36 | #6 |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Я пытался написать, не получилось вот почему:
если проверять прямую - будет чётное всегда: с обоих сторон от точки будет нечётное, а как проверять луч - не знаю... Если у кого-то есть исходник... |
11.02.2007, 14:55 | #7 | |
Пользователь
Регистрация: 09.02.2007
Сообщений: 32
|
Цитата:
Time have not meaning, mind - this is main...
|
|
11.02.2007, 16:42 | #8 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Луч - это прямая ИЗ точки. В некоторых случаях в одну из сторон не будет ни одного пересечения - это если точка находится справа или слева от многоугольника. |
|
11.02.2007, 18:54 | #9 | |
Форумчанин
Регистрация: 16.12.2006
Сообщений: 859
|
Цитата:
Да, так... Последний раз редактировалось zetrix; 11.02.2007 в 19:42. |
|
11.02.2007, 19:37 | #10 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Возьми лист бумаги и порисуй. Метода абсолютно верна. Если и вправо, и влево дает отсутствие пересечений, проверяем вертикальные лучи. Кстати, ноль - четное число, между прочим... |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не найдена точка входа. | Черничный | Общие вопросы Delphi | 17 | 23.07.2008 11:54 |
Определить попала ли точка в область? | Iogan Gamba Puti | Общие вопросы Delphi | 7 | 13.05.2008 00:15 |
Принадлежит ли точка (x,y) круговому кольцу... | Sota | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.03.2008 17:03 |
Дана точка A с координ. X и Y, определить... | Cullen | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 30.01.2008 00:22 |
Пренадлежит-ли точка функции? | Conso | Помощь студентам | 4 | 29.01.2008 15:28 |