在平面上变换三角形
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不独立)
在 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不独立)