Нахождение ограниченного прямоугольника внутри вогнутого / выпуклого многоугольника

Я ищу способ нахождения прямоугольника, выровненного по оси, внутри вогнутого или выпуклого многоугольника.

Я искал в сети, самые близкие решения, которые я мог бы найти, могли бы соответствовать только выпуклому, а не вогнутому многоугольнику. Например -

Нахождение выровненного по оси прямоугольника внутри многоугольника

Честно говоря, я не очень хороший математик, поэтому я бы предпочел найти примеры кода или библиотеку кода, но, думаю, я мог бы сам разобраться с какой-то математикой или найти кого-нибудь, кто мог бы помочь мне в этом.

Было бы неплохо, если бы решение было и на Java, но, возможно, я слишком жадный: P

EditВ ответ на комментарий Рассела я добавляю немного больше информации.

Ограниченный прямоугольник должен быть максимально большим. Прямоугольник предназначен для содержания текста внутри него. Максимум от 1 до 4 слов, с поддержкой переноса текста. Так что, если, например, он будет слишком тонким, я бы разместил текст вертикально, а не горизонтально. Так что для соотношения сторон, я думаю, этого должно быть достаточно для размещения 1-4 слов по вертикали или по горизонтали с переносом слов. Я могу изменить размер текста, если прямоугольник маленький, но желательно, чтобы текст был как можно большего размера.

Другим требованием, которое было бы хорошо иметь, было бы то, что если бы общая ориентация многоугольника была диагональной, а текст был бы намного лучше, когда он ориентирован по диагонали, тогда прямоугольник не обязательно был бы выровнен с осью. но вместо этого выровняйте по диагональным линиям многоугольника. Я предполагаю, что это требование делает это действительно сложным, но если вы, ребята, думаете, что это возможно, это было бы здорово!

Я думаю, что я выполнил все требования сейчас. :П

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос