В представленном здесь алгоритме для всех сторон и невыпуклых вершин многоугольника строятся границы областей близости по типу диаграммы Вороного. Узлы этих областей являются центрами вписанных окружностей. После того, как все эти окружности найдены из них выбирается одна с максимальным радиусом: Def<Circle2d> maxCircleInPolygon ( CCArrRef<Vector2d> & vert );
Мои тесты показали, что временная сложность этого алгоритма приблизительно равна O ( n1,5 ),
где n - это количество вершин многоугольника.
|