如何在WPF中计算从一个区域/矩形到另一个区域的转换矩阵

本文关键字:区域 另一个 转换 一个 WPF 计算 | 更新日期: 2023-09-27 18:24:34

WinForms中的Drawing2D.Matrix具有以下构造函数:

public Matrix(
    Rectangle rect,
    Point[] plgpts
)

它创建了一个具有正确数据的矩阵来描述从给定矩形到由给定点描述的区域的转换。

如何在WPF中以同样的方式生成矩阵?Windows.Media.Matrix没有相同的构造函数。

编辑:

更具体地说,我正在询问如何从WPF中的两个区域/矩形中获得相同的转换数据。旧的Matrix在其构造函数中具有此功能,但我在WPF中找不到实现此功能的方法。

如何在WPF中计算从一个区域/矩形到另一个区域的转换矩阵

如注释中所述,WPF矩阵没有提供具有此类功能的构造函数或工厂方法。

然而,您可以简单地从Drawing2D.Matrix的Elements属性创建一个WPF矩阵,如下所示。您需要在WPF项目中添加对System.Drawing程序集的引用。

var drawing2dMatrix = new System.Drawing.Drawing2D.Matrix(rect, points);
var wpfMatrix = new System.Windows.Media.Matrix(
    drawing2dMatrix.Elements[0],
    drawing2dMatrix.Elements[1],
    drawing2dMatrix.Elements[2],
    drawing2dMatrix.Elements[3],
    drawing2dMatrix.Elements[4],
    drawing2dMatrix.Elements[5]);