Перенесем центр в данную точку. Построим вектора {AiM}.Ai –
вершины.
Определим углы A2 M A1, A3 M A2, A4 M A3, … A1 M An,
Просуммируем : Если точка внутри, получим +- 2*Pi(зависит
от нумерации и направления обхода) , снаружи – ноль.
Углы через скалярное . Знаки углов получатся автоматически .
Естественные науки
как можно определить, что точка К (х; у) находится внутри многоугольника?
Если многоугольник задан несколькими неравенствами вида
Ax+By > C или Ax+By < C, то надо подставлять пару координат в каждое неравенство и смотреть, выполняются ли они. Если (выпуклый) многоугольник задан вершинами, то надо написать уравнения сторон и превратить эти уравнения в неравенства такого вида, как в 1-й части ответа. При этом надо бы нарисовать картинку.
Ax+By > C или Ax+By < C, то надо подставлять пару координат в каждое неравенство и смотреть, выполняются ли они. Если (выпуклый) многоугольник задан вершинами, то надо написать уравнения сторон и превратить эти уравнения в неравенства такого вида, как в 1-й части ответа. При этом надо бы нарисовать картинку.
Идея такая: проводим луч, например, горизонтально из точки до бесконечности, считаем число пересечений его со сторонами. Если число четно - точка вне контура, если нечетно - внутри.
Но надо аккуратно обрабатывать случаи касания луча и узлов. Если известно, что координаты многоугольника заданы с какой-то точностью, достаточно сместить точку на долю этой точности, например, если координаты углов даны в сантиметрах - сместить точку на миллиметр.
Для настоящих математиков могу предложить другой способ через функции комплексного переменного. Рассмотрим функцию f(z) = 1 / (z-z0), где z0 - данная точка, считаем интеграл от нее по контуру (многоугольнику) . Если точка вне контура - он равен нулю, если внутри - Пи (или 2 пи, уже подзабыл).
Но надо аккуратно обрабатывать случаи касания луча и узлов. Если известно, что координаты многоугольника заданы с какой-то точностью, достаточно сместить точку на долю этой точности, например, если координаты углов даны в сантиметрах - сместить точку на миллиметр.
Для настоящих математиков могу предложить другой способ через функции комплексного переменного. Рассмотрим функцию f(z) = 1 / (z-z0), где z0 - данная точка, считаем интеграл от нее по контуру (многоугольнику) . Если точка вне контура - он равен нулю, если внутри - Пи (или 2 пи, уже подзабыл).
Способов полно.
Можно использовать и такой (нерациональный) : взять пару соседних вершин и заданную точку, вычислить площадь получившегося треугольника; повторять до тех пор, пока не обойдём все вершины; просуммировать площади; если точка внутри многоугольника, то сумма будет равна его площади.
Можно использовать и такой (нерациональный) : взять пару соседних вершин и заданную точку, вычислить площадь получившегося треугольника; повторять до тех пор, пока не обойдём все вершины; просуммировать площади; если точка внутри многоугольника, то сумма будет равна его площади.
Левину. Может наоборот: если число чётно - внутри...?
Похожие вопросы
- Что находится внутри плотно закрытого куба? (с точки зрения физики)
- Почему внешняя среда сообщает всем находящимся внутри нее телам - свою температуру ???Какой процесс работает
- Как будет выглядеть процесс слияния 2 чёрных дыр с точки зрения наблюдателя, находящегося внутри одной из этих ЧД?
- 1. Что находится внутри Земли? 2. Почему расплавленные массы внутри Земли никогда не остывают?
- откуда астрономы знают, как выглядит наша Галактика со стороны, если мы находимся внутри?
- Задачка на геометрическое построение. На диагонали АС квадрата АВСЕ определить положение точки Р так, чтобы она отстояла
- что находиться внутри солнца?
- как узнали что находится внутри земли в разрезе?
- Помогите, пожалуйста, с логикой (вопросы находятся внутри)
- Я нахожусь внутри объекта. Как узнать, двигается этот объект или нет?