您的位置:首页 > 其它

Matrix类中Invert()的用法

2016-07-05 01:39 309 查看
昨天在编程过程中,使用到了一个新的类Matrix中的一个方法Invert()。

以前没见过,单词也没印象,所以我就查找资料,结果发现这居然是一个矩阵,但是我发现例子中Matrix的构造函数是:

Matrix m = new Matrix(1, 2, 3, 4, 0, 0);

但是构造函数的解释是Encapsulates a 3-by-3 affine matrix that represents a geometric transform. This class cannot be inherited,(封装表示几何变换的3X3仿射矩阵,此类不能被继承)。

但是第一眼我就震惊了,3X3的矩阵,难不成我小学没上完,坑爹啊,并且Invert的百度解释是转置,但是程序的运行结果显示上面那个矩阵的Invert()结果是 -2, 1, 1.5,-0.5, 0, 0。

我又一次的认为我大学的线代没及格,真的是伤不起啊。

后来这个问题折磨了我一晚上,第二天我再次上网找资料,结果发现仿射矩阵的概念,原来仿射矩阵是指“对坐标进行放缩,旋转,平移后取得新坐标的值或者对坐标轴的放缩,旋转,平移后原坐标在在新坐标领域中的值”,仿射矩阵最大的特点就是第三列的列向量永远是0
0 1,终于我看见了一丝曙光,于是我果断的将原矩阵和结果矩阵做一些运算,发现结果矩阵是原矩阵的逆矩阵,泪流满面啊,度娘,你辜负了我啊。

以后果断的上MSDN,度娘,做程序员的伤不起啊。

参考资料:

http://msdn.microsoft.com/zh-cn/library/w8s1ct0z.aspx

http://taomm689.blog.163.com/blog/static/23161015201062892355732/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: