C# System.Drawing.Matrix,我了解它的功能,但它是如何工作的?

C# System.Drawing.Matrix,我了解它的功能,但它是如何工作的?,c#,.net,gdi+,matrix,system.drawing,C#,.net,Gdi+,Matrix,System.drawing,我已经使用矩阵类一千次了。我对矩阵数学有一个基本的掌握,我已经好几年没有上过这门课了。但是我不完全理解这个类在幕后操纵图形中的点做了什么 具体来说,它在那里做什么,因为它特别与图形相关?或者从另一个角度来看,如果矩阵类不存在,我必须创建自己的,它会是什么样子,它会做什么?(我不是在创造我自己的,我只是想了解它) 此外,有人知道矩阵类中使用的矩阵的维数吗 编辑:我已经把范围缩小到下面的调用反射镜。从那里,我得到了一个丰满的吻 [DllImport("gdiplus.dll", CharSet=Ch

我已经使用矩阵类一千次了。我对矩阵数学有一个基本的掌握,我已经好几年没有上过这门课了。但是我不完全理解这个类在幕后操纵图形中的点做了什么

具体来说,它在那里做什么,因为它特别与图形相关?或者从另一个角度来看,如果矩阵类不存在,我必须创建自己的,它会是什么样子,它会做什么?(我不是在创造我自己的,我只是想了解它)

此外,有人知道矩阵类中使用的矩阵的维数吗

编辑:我已经把范围缩小到下面的调用反射镜。从那里,我得到了一个丰满的吻

[DllImport("gdiplus.dll", CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)]
internal static extern int GdipTransformPath(HandleRef path, HandleRef matrix);

GraphicsPath基本上是一组点和一个标志,用于解释点之间的关系。matrix类只是将矩阵应用于这些点

您可以实现相同的功能: 1.创建一个新的空图形SPATH 2.使用Graphicspathierator,迭代路径(和子路径) 3.取每个点并应用矩阵 4.将该点添加到新的GraphicsPath


但不要这样做。GraphicsPath中的类型没有很好的文档记录。

在这种情况下,矩阵类是2D变换矩阵。矩阵用于缩放、旋转和/或平移图形路径。数学相对来说是直截了当的。您可以在这里查看:

如果您要创建自己的矩阵类并来回转换为System.Drawing.matrix类,需要注意的一点是,.NET One在转换点时不使用最常用的标准

NET矩阵似乎在转换发生之前已被转置


也请阅读这里的背景:

我不认为我会创建自己的,我只是想更好地了解那里到底发生了什么,这样我就可以确保我的代码尽可能高效。哦,你链接的这个项目真的很酷,我期待着深入研究它,看看它是如何工作的。那么矩阵的维数是多少呢?你认为它在做什么,乘法?老兄,我得重新开始我的线性几何了。tjoho下面的文章真的很有趣,我强烈建议任何来这里寻找答案的人去看看它;我认为这个答案更多的是我所寻找的基础知识。谢谢