Преобразовать треугольник на плоскости
Есть треугольник с точками P1(x1,y1)
,P2(x2,y2)
,P3(x3,y3)
на плоскости XY.
Финальная позиция после трансформации нам известна, P1'(x,y)
а также P2'(x,y)
Как я могу найти третий пункт?
Использование формулы наклона (или расстояния) дает два решения (одно является зеркальным отражением другого). Предполагая, что преобразование является комбинацией перемещения и поворота, как мне получить новые координаты конечной точки P3'
?
1 ответ
Если у вас уже есть решение с использованием формулы расстояния, вам нужно только выбрать, какая точка зеркала необходима. Чтобы уточнить, найти знак перекрестного произведения P1P2
вектор и P1P3
вектор. Затем найдите признак перекрестного произведения P1'P2'
вектор и P1'Px
вектор. Если знаки отличаются, получите другое очко.
CrossProduct = (P2.X - P1.X) * (P3.Y - P1.Y) - (P2.Y - P1.Y) * (P3.X - P1.X)
В общем случае вы можете найти коэффициенты матрицы преобразования и применить эту матрицу к третьей точке
c -s 0
M = s c 0
dx dy 1
система уравнений
c * x1 + s * y1 + dx = x1'
-s * x1 + c * y1 + dy = y1'
c * x2 + s * y2 + dx = x2'
-s * x2 + c * y2 + dy = y2'
решить это для неизвестных c, s, dx, dy (на самом деле c и s не являются независимыми)