System.Drawing.Drawing2D.Matrix有一个非常方便的构造函数
public Matrix(RectangleF rect, PointF[] plgpts)
基本上,您可以给出变换矩形的矩形和平行四边形,然后返回相应的变换。就我而言,这非常有帮助。
不幸的是,我需要双精度矩阵。 有谁知道如何从矩形和平行四边形计算System.Windows.Media.Matrix?
答案 0 :(得分:0)
这涉及一些数学:
你需要计算2个碱基之间的转换矩阵。
首先,计算矩形的基础向量,然后计算平行四边形的基础向量。
然后,您可以使用高斯消元法来计算变换矩阵。
答案 1 :(得分:0)
blake的答案是正确的,但是因为你有一个简单的矩形,它可以更容易计算。
你寻找一个3x3矩阵,它有三个列向量c1,c2和c3。 c1是(1,0,0)的图像,c2是(0,1,0)的图像,c3是(0,0,1)的图像。
(0,0,1)是起源。您可以将它放在矩形的左下角。所以c3是平行四边形的左下角。
(1,0,0)是长度为1的x轴方向。因此,c1是平行四边形的右下角和左下角的差矢量除以矩形的宽度。
同样为(0,1,0)。因此,c2是平行四边形的左上角和左下角的差矢量除以矩形的高度。
我应该补充一点,你必须添加0作为c1和c2的第三个组件,c3的第三个组件。