0

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

public Matrix(RectangleF rect, PointF[] plgpts)

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

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

4

2 回答 2

0

这涉及到一些数学:

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

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

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

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

于 2012-09-12T15:51:06.487 回答
0

布莱克的答案是正确的,但是它可以更容易计算,因为你有一个简单的矩形。

您寻找一个 3x3 矩阵,它具有三个列向量 c1、c2 和 c3。c1 是 (1,0,0) 的图像,c2 是 (0,1,0) 的图像,c3 是 (0,0,1) 的图像。

(0,0,1) 是原点。您可以将其放置在矩形的左下角。所以 c3 是平行四边形的左下角。

(1,0,0) 是 x 轴的方向,长度为 1。因此,c1 是平行四边形的右下角和左下角的差向量除以矩形的宽度。

等于 (0,1,0)。因此,c2 是平行四边形左上角和左下角的差向量除以矩形的高度。

我应该补充一点,您必须为 c1 和 c2 添加 0 作为第三个组件,为 c3 添加 1。

于 2012-09-12T16:00:37.347 回答