Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для UriahHeep
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2

Принадлежность точки неправильному многоугольнику

11.03.2015, 13:01. Показов 1583. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определяется область путём задания координат точек (количество точек может быть произвольным). Как определить принадлежит ли точка этой области? Область (многоугольник) может быть как выпуклая, так и нет. Интересует общий способ. Наведите на мысль. Спасибо.
Принадлежность точки неправильному многоугольнику
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2015, 13:01
Ответы с готовыми решениями:

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

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

Принадлежность точки плоскости (ХУ).
Ответить на вопрос на скрине! Зарание спаспибо!

6
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
11.03.2015, 13:43
Лучший ответ Сообщение было отмечено UriahHeep как решение

Решение

Для выпуклой фигуры все просто... Для не выпуклой - как-то разбить на выпуклые и анализировать для них...

Добавлено через 3 минуты
Для выпуклой делается так. Пишется уравнение каждой стороны в виде Ax+By+C=0
И вот точка должна давать при подстановке ее координат в уравнение тот же знак, что и одна из вершин (других, не на этой стороне)

Добавлено через 18 минут
Критерий выпуклости - для уравнения любой стороны все остальные вершины лежат от нее по одну сторону (дают одинаковый знак).
Это подсказывает алгоритм разбиения фигуры на выпуклые. Если для одной сторон это не так (на рисунке 5-6) находим ее пересечение с ближайшей стороной (2-3) и получаем разбиение на 2 части. Для каждой из частей снова применяем критерий выпуклости, пока все части не станут "хорошими"
1
Модератор
Эксперт по математике/физике
 Аватар для VSI
5277 / 4059 / 1389
Регистрация: 30.07.2012
Сообщений: 12,429
11.03.2015, 14:18
UriahHeep, как иллюстрация - программа на Mathcad'е...

Не по теме:

А Вы кто - Мик Бокс, Дэвид Байрон, Кен Хенсли, Гэри Тэйн или Ли Керслэйк? Или за всех сразу? :)

Миниатюры
Принадлежность точки неправильному многоугольнику  
1
 Аватар для UriahHeep
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
11.03.2015, 14:52  [ТС]
Принцип ясен, спасибо.

Не по теме:

VSI, я за того, который у Диккенса.

0
 Аватар для palva
4256 / 2952 / 688
Регистрация: 08.06.2007
Сообщений: 9,862
Записей в блоге: 4
11.03.2015, 17:30
Лучший ответ Сообщение было отмечено Байт как решение

Решение

Вычисляем сумму ориентированных углов 1X2 2X3 ... NX1. Если получилось 2пи, значит точка внутри, если 0 - значит вне. Если многоугольник с самопересечениями, то возможны другие варианты. Но в таких случаях вы должны определиться, что значит точка лежит внутри.
1
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
11.03.2015, 18:58
Цитата Сообщение от palva Посмотреть сообщение
Если получилось 2пи
Да, ваш метод теоретически очень хорош. Одно НО. Мы тут попадаем в зависимость от причуд машинной арифметики.

Добавлено через 44 минуты
Впрочем, скорее всего, мои опасения напрасны. Для внутренней и внешней точек сумма углов будет резко отличаться. И достаточно для сравнения с 2пи взять небольшой эпсилон ("машинный ноль")
0
 Аватар для palva
4256 / 2952 / 688
Регистрация: 08.06.2007
Сообщений: 9,862
Записей в блоге: 4
12.03.2015, 00:44
Лучший ответ Сообщение было отмечено Байт как решение

Решение

Минус 2пи тоже может быть, если точки в многоугольнике перечислены по часовой стрелке.
https://ru.wikipedia.org/wiki/... 0%BE%D0%B9
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2015, 00:44
Помогаю со студенческими работами здесь

Принадлежность точки отрезку
Есть точка в пространстве с известными координатами, есть отрезок или вектор в пространстве с известными координатами начала и конца. ...

Принадлежность точки эллипсу
Есть эллипс. С помощью матрицы аффинного преобразования я его повернул и растянул как мне хочется. Теперь как узнать лежит ли внутри него...

Принадлежность точки прямоугольнику
Есть прямоугольник, повернутый на угол \gamma, следует определить находится ли произвольная точка A внутри него. Правильно ли я понимаю,...

Определить принадлежность точки дуге
Добрый день! Полярная система кооринат. Имеется произвольный вектор ОА, к нему построен перпендикуляр CD. Через точки CAD...

Принадлежность точки с заданными координатами
Здравствуйте. Так как просить готовый ответ не совсем честно, хотел спросить как вычисляют координаты, или как это называется. То есть как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер