Ищите алгоритм "минимальный описанный прямоугольник". На входе выпуклый многоугольник, на выходе минимальный по площади или периметру повёрнутый прямоугольник.
Но у нас невыпуклый многоугольник. Сделаем его выпуклым - построим выпуклую оболочку.
Для обоих подзадач есть много реализаций.
Да, придётся прямоугольник поворачивать, для того я и хотела хотя бы приближённо накидать. Вот что получается, если взять кусок эллипса, а прямоугольник не поворачивать:
Даже на глазок видно, что центр сильно "убежал". Если подобрать значения, когда сторона полигона лежит на диагонали охватывающего прямоугольника, он мог бы сместиться ещё сильнее.
По поводу раскроя: я не собираюсь искать точные решения, я хочу написать вспомогательную программу, которая облегчила бы работу закройщика. Таких программ много, но не с тем функционалом, который мне нужен, а ещё они не бесплатные. А то вот есть алгоритм разворота единичного отрезка на 180° на нулевой площади, но для этого требуется сместить отрезок на бесконечное расстояние во все стороны. Подобного мне не надо.
Была ещё идея найти точку, сумма расстояний до которой от всех вершин минимальна (для этого достаточно взять квадраты, а не сами расстояния, тогда можно избежать "тяжёлого" вычисления квадратного корня), но как?.. И потом, с тем треугольником, который я сочинила, то же самое получится. С триангуляцией было бы неплохо, спасибо,
arseniiv, но центры надо вычислять как пересечение медиан, так что не знаю, опять головоломная геометрия, и минимальной оболочки всё равно не избежать.
Может быть, тему надо перенести в информатику, не очень внимательно смотрела описание раздела.
А ещё у меня была соседняя задача пересечения невыпуклых многоугольников, но это уже для частичной автоматизации раскроя, усилий может уйти много, а толку будет мало. Это скорее для фирм, которые пишут такой софт.