Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2010, 23:21   #1
LOVELY
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 10
По умолчанию Полигон

В Паскале вот этот "страх" решите пожалуйста) буду оч благодарна...

Дан полигон, необязательно выпуклый. Дана точка P с координатами х0 у0. Определяется, находится ли точка Р внутри полигона.
файл Пол.тхт содержит в первой строче координаты Р. Во второй количество вершин полигона. и далее координаты вершин.
ввод

12 6
16
3 2
3 11
13 11
13 10
7 10
7 9
13 9
13 8
7 8
7 4
11 4
11 6
8 6
8 7
13 7
13 2

вывод ДА
LOVELY вне форума Ответить с цитированием
Старый 11.02.2010, 23:51   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

полигон - это есть функция плоскости в пространстве (если не ошибаюсь), соответственно нужно изучить раздел вычмата или матана, где имеется формула нахождения принадлежности точки плоскости в пространстве

или проще - сравниваем координаты точкис максимумами вершин полигона, если координаты точки =< максимумам координат вершин, знач точка принадлежит, если нет - то нет, как говорится
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 12.02.2010, 01:11   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Более-менее простое решение за O(n) - строить треугольники, у которых 2 вершины являются вершинами полигона, а третья - наша точка. Суммирум площади всех треугольников и сравниваем с площадью полигона (площадь полигона считаем обходом по периметру и формулой трапеций, 2 строчки получится), если больше - точка снаружи, если равна, или же больше в пределах eps - внутри. При этом, если хоть одна из площадей теругольников была равной 0 - точка на границе.

RUSt88, не усложняйте так. А про максимумы - не верно.
LeBron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работать с TCanvas - на PaintBox1 программа должна рисовать полигон Михаил Юрьевич Общие вопросы Delphi 16 04.01.2008 15:31