矩形和平行四边形的矩阵

时间:2012-09-12 14:53:20

标签: c# wpf math

System.Drawing.Drawing2D.Matrix有一个非常方便的构造函数

public Matrix(RectangleF rect, PointF[] plgpts)

基本上,您可以给出变换矩形的矩形和平行四边形,然后返回相应的变换。就我而言,这非常有帮助。

不幸的是,我需要双精度矩阵。 有谁知道如何从矩形和平行四边形计算System.Windows.Media.Matrix?

2 个答案:

答案 0 :(得分:0)

这涉及一些数学:

你需要计算2个碱基之间的转换矩阵。

首先,计算矩形的基础向量,然后计算平行四边形的基础向量。

然后,您可以使用高斯消元法来计算变换矩阵。

http://en.wikipedia.org/wiki/Change_of_basis

答案 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的第三个组件。