Страницы

Поиск по вопросам

четверг, 16 мая 2019 г.

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

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


Ответ

Будем пользоваться полярными координатами. Зададим 2 треугольника парами значений в полярных координатах:


Угол поворота второго треугольника относительно первого:
Так как у вас нет четкого условия про минимальное расстояние, возьмем сумму квадратов расстояний (визуально это должен быть наилучший вариант). Используя формулу для расстояния между 2 точками на полярных координатах получаем такие квадраты расстояний:



Мы должны найти минимум функции сумм этих 3 величин. В нас здесь много констант, что бы упростить формулу, положим:







И тогда наша сумма квадратов расстояний примет вид:

Возьмем производную, что бы найти экстремумы функции:

Если расписать синус разницы, то получим:

Положим:


И получим:

Такое уравнение легко решить, если взять такой угол , что:


Тогда уравнение примет вид:

Такое легко решить. Дальше нужно повторить все это, смещая точки второго треугольника: сначала сместить на 1 (первая точка станет второй, вторая третьей и т. д.), потом на 2.

Комментариев нет:

Отправить комментарий