Круг остается в границах треугольника

В настоящее время я пытаюсь держать круг в границах окружающего треугольника. Как на этой картинке:

Образ

До сих пор я придумал две идеи.

  1. Каждый раз, когда пользователь перетаскивает круг, я могу проверить, что все три линии треугольника не пересекаются с кругом.

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

Что вы думаете о каком-либо из этих двух решений или знаете о превосходных?

1 ответ

Решение

Второй кажется вычислительно менее дорогим, если предположить, что треугольник не меняется так часто.

Кажется, есть много реализаций для проверки, находится ли точка в треугольнике или нет, что должно быть немного более оптимальным, чем проверка на пересечения

Как упоминал в комментариях Franz Busch, вы можете легко определить треугольник вставки, рисуя параллельные линии к существующим ребрам, предполагая, что треугольник не меняется так часто, это не должно быть накладными расходами, и, следовательно, решение должно работать достаточно хорошо.

Другие вопросы по тегам