Я искал в интернете несколько дней, но не смог найти хорошего ответа (или хотя бы того, который имел смысл для меня) на то, что, похоже, должно быть обычным вопросом.Как масштабировать произвольный многоугольник?В частности, вогнутые многоугольники.Мне нужен алгоритм, который может обрабатывать вогнутые (определенно) и самопересекающиеся (если это возможно) многоугольники.Очевидный и простой алгоритм, который я использовал для обработки простых выпуклых многоугольников, - это вычисление центроида многоугольника, перевод этого центроида в начало координат, масштабирование всех вершин и перевод многоугольника обратно в исходное местоположение.
Этот подход не работает для многих (или, возможно, всех) вогнутых многоугольников, поскольку центроид часто выходит за пределы многоугольника, поэтому операция масштабирования также приводит к переводу, и мне нужно иметь возможность масштабировать многоугольник "вplace »без перевода конечного результата.
Кто-нибудь знает метод масштабирования вогнутых многоугольников?Или, может быть, способ найти «визуальный центр», который можно использовать в качестве системы отсчета для операции масштабирования?
Просто чтобы уточнить, я работаю в 2D-пространстве и хотел бы масштабировать свои полигоныиспользуя «визуальный центр» в качестве системы отсчета.Поэтому, возможно, еще один способ задать вопрос: как найти визуальный центр вогнутого и / или самопересекающегося многоугольника?
Спасибо!