Естественные науки

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

Перенесем центр в данную точку. Построим вектора {AiM}.Ai –
вершины.

Определим углы A2 M A1, A3 M A2, A4 M A3, … A1 M An,

Просуммируем : Если точка внутри, получим +- 2*Pi(зависит
от нумерации и направления обхода) , снаружи – ноль.

Углы через скалярное . Знаки углов получатся автоматически .
ЭС
Эльмира Султанова
68 451
Лучший ответ
Если многоугольник задан несколькими неравенствами вида
Ax+By > C или Ax+By < C, то надо подставлять пару координат в каждое неравенство и смотреть, выполняются ли они. Если (выпуклый) многоугольник задан вершинами, то надо написать уравнения сторон и превратить эти уравнения в неравенства такого вида, как в 1-й части ответа. При этом надо бы нарисовать картинку.
Roman Urri
Roman Urri
67 214
Идея такая: проводим луч, например, горизонтально из точки до бесконечности, считаем число пересечений его со сторонами. Если число четно - точка вне контура, если нечетно - внутри.

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

Для настоящих математиков могу предложить другой способ через функции комплексного переменного. Рассмотрим функцию f(z) = 1 / (z-z0), где z0 - данная точка, считаем интеграл от нее по контуру (многоугольнику) . Если точка вне контура - он равен нулю, если внутри - Пи (или 2 пи, уже подзабыл).
Способов полно.
Можно использовать и такой (нерациональный) : взять пару соседних вершин и заданную точку, вычислить площадь получившегося треугольника; повторять до тех пор, пока не обойдём все вершины; просуммировать площади; если точка внутри многоугольника, то сумма будет равна его площади.
Левину. Может наоборот: если число чётно - внутри...?
Д.
Димас .
98 617