Преобразовать треугольник на плоскости

Есть треугольник с точками 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 не являются независимыми)

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