как можно определить, что точка К (х; у) находится внутри многоугольника?

9 года назад от anule4ka

3 Ответы

0 голосов
Способов полно.
Можно использовать и такой (нерациональный) : взять пару соседних вершин и заданную точку, вычислить площадь получившегося треугольника; повторять до тех пор, пока не обойдём все вершины; просуммировать площади; если точка внутри многоугольника, то сумма будет равна его площади.
9 года назад от AVES
0 голосов
Если многоугольник задан несколькими неравенствами вида
Ax+By C или Ax+By C, то надо подставлять пару кординат в каждое неравенство и смотреть, выполняются ли они. Если (выпуклый) многоугольник задан вершинами, то надо написать уравнения сторон и превратить эти уравнения в неравенства такого вида, как в 1-й части ответа. При этом надо бы нарисовать картинку.
9 года назад от Ася Малыхина
0 голосов
Идея такая: проводим луч, например, горизонтально из точки до бесконечности, считаем число пересечений его со сторонами. Если число четно - точка вне контура, если нечетно - внутри.

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

Для настоящих математиков могу предложить другой способ через функции комплексного переменного. Рассмотрим функцию f (z) = 1 / (z-z0) , где z0 - данная точка, считаем интеграл от не по контуру (многоугольнику) . Если точка вне контура - он равен нулю, если внутри - Пи (или 2 пи, уже подзабыл) .
9 года назад от СЂРѕРјР° С…С…С…

Связанные вопросы