在平面上变换三角形

Transform a triangle on a plane

在 XY 平面上有一个点 P1(x1,y1)P2(x2,y2)P3(x3,y3) 的三角形。

变换后的最终位置是我们已知的,P1'(x,y)P2'(x,y) 我怎样才能找到第三个点?

使用斜率(或距离)公式给出两个解(一个是另一个的镜像)。假设转换是平移和旋转的组合,我如何获得最终点的新坐标 P3' ?

如果您已经有了距离公式的解法,您只需要选择需要的镜像点即可。为了澄清,找到 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不独立)