Круг остается в границах треугольника
В настоящее время я пытаюсь держать круг в границах окружающего треугольника. Как на этой картинке:
До сих пор я придумал две идеи.
Каждый раз, когда пользователь перетаскивает круг, я могу проверить, что все три линии треугольника не пересекаются с кругом.
Я вычисляю еще один меньший треугольник, где линии имеют расстояние, в несколько раз превышающее радиус круга до большого треугольника. После этого я должен посмотреть, находится ли центр круга внутри меньшего треугольника
Что вы думаете о каком-либо из этих двух решений или знаете о превосходных?
1 ответ
Второй кажется вычислительно менее дорогим, если предположить, что треугольник не меняется так часто.
Кажется, есть много реализаций для проверки, находится ли точка в треугольнике или нет, что должно быть немного более оптимальным, чем проверка на пересечения
Как упоминал в комментариях Franz Busch, вы можете легко определить треугольник вставки, рисуя параллельные линии к существующим ребрам, предполагая, что треугольник не меняется так часто, это не должно быть накладными расходами, и, следовательно, решение должно работать достаточно хорошо.