Простой многоугольник — это замкнутая кривая на евклидовой плоскости, состоящая из отрезков прямых линий , которые сходятся встык, образуя многоугольную цепь . [1] Два отрезка линий встречаются в каждой конечной точке, и нет других точек пересечения между отрезками линий. Никакое собственное подмножество отрезков линий не имеет тех же свойств. [2] Квалификатор simple иногда опускается, при этом слово polygon подразумевает простой многоугольник. [3]
Отрезки линий, образующие многоугольник, называются его ребрами или сторонами . Конечная точка сегмента называется вершиной ( множественное число: вершины) [2] или углом . Ребра и вершины более формальны, но могут быть неоднозначными в контекстах, которые также включают ребра и вершины графа ; более разговорные термины стороны и углы могут использоваться, чтобы избежать этой неоднозначности. [4] Количество ребер всегда равно количеству вершин. [2] Некоторые источники разрешают двум отрезкам линий образовывать прямой угол (180°), [5] в то время как другие запрещают это, вместо этого требуя, чтобы коллинеарные сегменты замкнутой многоугольной цепи были объединены в одну более длинную сторону. [6] Две вершины являются соседями , если они являются двумя конечными точками одной из сторон многоугольника. [7]
Простые многоугольники иногда называют жордановыми многоугольниками , потому что они являются жордановыми кривыми ; теорема о жордановой кривой может быть использована для доказательства того, что такой многоугольник делит плоскость на две области. [8] Действительно, оригинальное доказательство этой теоремы Камилла Жордана взяло за отправную точку частный случай простых многоугольников (изложенный без доказательства). [9] Область внутри многоугольника (его внутренняя часть ) образует ограниченное множество [2], топологически эквивалентное открытому диску по теореме Жордана–Шенфлиса [10] с конечной , но ненулевой площадью . [11] Сам многоугольник топологически эквивалентен окружности [ 12] , а область снаружи ( внешняя часть ) является неограниченным связным открытым множеством с бесконечной площадью. [11] Хотя формальное определение простого многоугольника обычно представляет собой систему отрезков прямых, также возможно (и распространено в неформальном использовании) определить простой многоугольник как замкнутое множество на плоскости, объединение этих отрезков прямых с внутренней частью многоугольника. [2]
Диагональю простого многоугольника называется любой отрезок прямой, конечными точками которого являются две вершины многоугольника, а в остальном он полностью находится внутри многоугольника. [13]
Характеристики
Внутренний угол простого многоугольника в одной из его вершин — это угол, образованный внутренней частью многоугольника в этой вершине. Вершина является выпуклой , если ее внутренний угол меньше (прямой угол, 180°), и вогнутой , если внутренний угол больше . Если внутренний угол равен , внешний угол в той же вершине определяется как его дополнение , угол поворота от одной направленной стороны к другой. Внешний угол положителен в выпуклой вершине или отрицателен в вогнутой вершине. Для каждого простого многоугольника сумма внешних углов равна (один полный оборот, 360°). Таким образом, сумма внутренних углов для простого многоугольника со сторонами равна . [14]
Каждый простой многоугольник можно разбить на неперекрывающиеся треугольники подмножеством его диагоналей. Когда у многоугольника есть стороны, это дает треугольники, разделенные диагоналями. Полученное разбиение называется триангуляцией многоугольника . [8] Форма триангулированного простого многоугольника может быть однозначно определена внутренними углами многоугольника и поперечными отношениями четырехугольников , образованных парами треугольников, которые разделяют диагональ. [15]
Согласно теореме о двух ушах , каждый простой многоугольник, который не является треугольником, имеет по крайней мере два уха , вершины, два соседа которых являются конечными точками диагонали. [8] Связанная теорема утверждает, что каждый простой многоугольник, который не является выпуклым многоугольником, имеет рот , вершину, два соседа которой являются конечными точками отрезка прямой, который в противном случае полностью является внешним по отношению к многоугольнику. Многоугольники, которые имеют ровно два уха и один рот, называются антропоморфными многоугольниками . [16]
Согласно теореме о художественной галерее , в простом многоугольнике с вершинами всегда можно найти подмножество из большинства вершин со свойством, что каждая точка многоугольника видна из одной из выбранных вершин. Это означает, что для каждой точки многоугольника существует отрезок прямой, соединяющийся с выбранной вершиной, проходящий только через внутренние точки многоугольника. Один из способов доказать это — использовать раскраску графа на триангуляции многоугольника: всегда можно раскрасить вершины тремя цветами, так что каждая сторона или диагональ в триангуляции будет иметь две конечные точки разных цветов. Каждая точка многоугольника видна вершине каждого цвета, например, одной из трех вершин треугольника, содержащего эту точку в выбранной триангуляции. Один из цветов используется большинством вершин, что доказывает теорему. [17]
Особые случаи
Каждый выпуклый многоугольник является простым многоугольником. Другой важный класс простых многоугольников — звездообразные многоугольники , многоугольники, имеющие точку (внутри или на границе), из которой видна каждая точка. [2]
Монотонный многоугольник , относительно прямой линии , является многоугольником , для которого каждая линия, перпендикулярная пересекает внутреннюю часть многоугольника в связном множестве. Эквивалентно, это многоугольник, граница которого может быть разделена на две монотонные полигональные цепи, подпоследовательности ребер, вершины которых при проецировании перпендикулярно на имеют тот же порядок вдоль , что и в цепи. [18]
Вычислительные проблемы
В вычислительной геометрии несколько важных вычислительных задач подразумевают входные данные в форме простого многоугольника.
Тестирование точек в многоугольнике включает определение для простого многоугольника и точки запроса , лежит ли внутри . Его можно решить за линейное время ; в качестве альтернативы можно обработать заданный многоугольник в структуру данных за линейное время, так что последующие тесты точек в многоугольнике могут быть выполнены за логарифмическое время. [20]
Известны простые формулы для вычисления площади внутренней части многоугольника. К ним относятся формула шнурка для произвольных многоугольников, [21] и теорема Пика для многоугольников с целыми координатами вершин. [12] [22]
Построение триангуляции простого многоугольника также может быть выполнено за линейное время, хотя алгоритм сложен. Модификация того же алгоритма также может быть использована для проверки того, образует ли замкнутая полигональная цепь простой многоугольник (то есть избегает ли она самопересечений) за линейное время. [23] Это также приводит к алгоритму линейного времени для решения задачи художественной галереи с использованием большинства точек, хотя не обязательно с использованием оптимального количества точек для данного многоугольника. [24] Хотя возможно преобразовать любые две триангуляции одного и того же многоугольника друг в друга с помощью переворотов , которые заменяют одну диагональ за раз, определение того, можно ли сделать это, используя только ограниченное количество переворотов, является NP-полной задачей . [25]
Геодезический путь [26] , кратчайший путь на плоскости, соединяющий две точки внутри многоугольника, не пересекая его с внешней частью, может быть найден за линейное время с помощью алгоритма, который использует триангуляцию в качестве подпрограммы. [27] То же самое верно для геодезического центра , точки в многоугольнике, которая минимизирует максимальную длину своих геодезических путей ко всем другим точкам. [26]
Полигон видимости внутренней точки простого полигона, то есть точек, которые непосредственно видны из данной точки по внутренним отрезкам линии полигона, можно построить за линейное время. [28] То же самое верно для подмножества, которое видно хотя бы из одной точки данного отрезка линии. [27]
Другие вычислительные проблемы, изучаемые для простых многоугольников, включают в себя построение самой длинной диагонали или самого длинного отрезка линии внутри многоугольника, [13] выпуклого черепа (самого большого выпуклого многоугольника внутри данного простого многоугольника), [29] [30] и различных одномерных скелетов, аппроксимирующих его форму, включая медиальную ось [31] и прямой скелет . [32] Исследователи также изучали создание других многоугольников из простых многоугольников с использованием их смещенных кривых , [33] объединений и пересечений, [11] и сумм Минковского , [34] но эти операции не всегда производят простой многоугольник в качестве своего результата. Их можно определить таким образом, чтобы всегда создавать двумерную область, но это требует тщательного определения операций пересечения и разности, чтобы избежать создания одномерных объектов или изолированных точек. [11]
Связанные конструкции
Согласно теореме об отображении Римана , любое просто связное открытое подмножество плоскости может быть конформно отображено на диск. Отображение Шварца–Кристоффеля предоставляет метод явного построения отображения из диска в любой простой многоугольник с использованием указанных углов вершин и прообразов вершин многоугольника на границе диска. Эти прообразы вершин обычно вычисляются численно. [35]
Любой конечный набор точек на плоскости, не лежащих на одной прямой, можно соединить, образовав вершины простого многоугольника (допускающего углы в 180°); например, один из таких многоугольников является решением задачи коммивояжера . [36] Соединение точек для образования многоугольника таким способом называется полигонализацией . [37]
Каждый простой многоугольник может быть представлен формулой в конструктивной стереометрии , которая строит многоугольник (как замкнутое множество, включающее внутреннюю часть) из объединений и пересечений полуплоскостей , причем каждая сторона многоугольника появляется один раз как полуплоскость в формуле. Преобразование -стороннего многоугольника в это представление может быть выполнено за время . [38]
Граф видимости простого многоугольника соединяет его вершины ребрами, представляющими стороны и диагонали многоугольника. [3] Он всегда содержит гамильтонов цикл , образованный сторонами многоугольника. Вычислительная сложность реконструкции многоугольника, имеющего заданный граф в качестве графа видимости, с указанным гамильтоновым циклом в качестве цикла сторон, остается открытой проблемой. [39]
^ abc Meisters, GH (1975). «У многоугольников есть уши». The American Mathematical Monthly . 82 (6): 648–651. doi :10.2307/2319703. JSTOR 2319703. MR 0367792.
^ abcd Маргалит, Авраам; Нотт, Гэри Д. (1989). «Алгоритм вычисления объединения, пересечения или разности двух многоугольников». Компьютеры и графика . 13 (2): 167–183. doi :10.1016/0097-8493(89)90059-9.
^ ab Niven, Ivan ; Zuckerman, HS (1967). «Точки решетки и многоугольная площадь». The American Mathematical Monthly . 74 (10): 1195–1200. doi :10.1080/00029890.1967.12000095. JSTOR 2315660. MR 0225216.
^ ab Aggarwal, Alok; Suri, Subhash (1990). «Вычисление самой длинной диагонали простого многоугольника». Information Processing Letters . 35 (1): 13–18. doi :10.1016/0020-0190(90)90167-V. MR 1069001.
^ Ричмонд, Беттина ; Ричмонд, Томас (2023). Дискретный переход к высшей математике. Чистые и прикладные бакалаврские тексты. Т. 63 (2-е изд.). Американское математическое общество. стр. 421. ISBN9781470472047.
^ Snoeyink, Jack (1999). «Перекрестные отношения и углы определяют многоугольник». Дискретная и вычислительная геометрия . 22 (4): 619–631. doi : 10.1007/PL00009481 . MR 1721028.
^ Фиск, С. (1978). «Краткое доказательство теоремы Хватала о стороже». Журнал комбинаторной теории, Серия B. 24 ( 3): 374. doi : 10.1016/0095-8956(78)90059-X .
^ Ширра, Стефан (2008). «Насколько надежны практические стратегии «точка в многоугольнике»?» (PDF) . В Гальперин, Дэн; Мельхорн, Курт (ред.). Алгоритмы – ESA 2008, 16-й ежегодный европейский симпозиум, Карлсруэ, Германия, 15–17 сентября 2008 г. Труды . Заметки лекций по информатике. Том 5193. Springer. стр. 744–755. doi :10.1007/978-3-540-87744-8_62.
^ Snoeyink, Jack (2017). «Point Location» (PDF) . В Toth, Csaba D.; O'Rourke, Joseph; Goodman, Jacob E. (ред.). Handbook of Discrete and Computational Geometry (3-е изд.). Chapman and Hall/CRC. стр. 1005–1023.
^ Брейден, Барт (1986). «Формула площади геодезиста» (PDF) . The College Mathematics Journal . 17 (4): 326–337. doi :10.2307/2686282. JSTOR 2686282. Архивировано из оригинала (PDF) 2012-11-07.
^ Эль Джинди, Хоссам; Авис, Дэвид (1981). «Линейный алгоритм вычисления многоугольника видимости из точки». Журнал алгоритмов . 2 (2): 186–197. doi :10.1016/0196-6774(81)90019-5.
^ Чанг, Дж. С.; Яп, Ч.-К. (1986). «Полиномиальное решение задачи очистки картофеля». Дискретная и вычислительная геометрия . 1 (2): 155–182. doi : 10.1007/BF02187692 . MR 0834056.
^ Кабельо, Серхио; Цибулка, Йозеф; Кинчл, Ян; Саумелл, Мария; Вальтр, Павел (2017). «Очистка картофеля почти оптимально за почти линейное время». SIAM Journal on Computing . 46 (5): 1574–1602. arXiv : 1406.1368 . doi : 10.1137/16M1079695. MR 3708542.
^ Чин, Фрэнсис YL ; Снойинк, Джек; Ван, Цао Ань (1999). «Нахождение срединной оси простого многоугольника за линейное время». Дискретная и вычислительная геометрия . 21 (3): 405–420. doi : 10.1007/PL00009429 . MR 1672988.
^ Ченг, Сиу-Винг; Менсель, Лиам; Виньерон, Антуан (2016). «Быстрый алгоритм для вычисления прямых скелетонов». ACM Transactions on Algorithms . 12 (3): 44:1–44:21. arXiv : 1405.4691 . doi : 10.1145/2898961.
^ Палфрейдер, Питер; Хелд, Мартин (февраль 2015 г.). «Вычисление угловых офсетных кривых на основе прямых скелетов». Computer-Aided Design and Applications . 12 (4): 414–424. doi : 10.1080/16864360.2014.997637 .
^ Окс, Эдуард; Шарир, Миха (2006). «Суммы Минковского монотонных и общих простых многоугольников». Дискретная и вычислительная геометрия . 35 (2): 223–240. doi : 10.1007/s00454-005-1206-y . MR 2195052.
^ Трефетен, Ллойд Н .; Дрисколл, Тобин А. (1998). «Отображение Шварца–Кристоффеля в компьютерную эпоху». Труды Международного конгресса математиков, т. III (Берлин, 1998) . Documenta Mathematica. стр. 533–542. MR 1648186.
^ Quintas, LV; Supnick, Fred (1965). «О некоторых свойствах кратчайших гамильтоновых цепей». The American Mathematical Monthly . 72 (9): 977–980. doi :10.2307/2313333. JSTOR 2313333. MR 0188872.