利用矩阵进行坐标转换之前做拓扑图,本来打算整一套坐标系统在里面的,后来因为时间原因暂时用了最原始的方法实现。现在稍稍得闲,重新开始思考这个问题。不过在搜索的时候,意外发现.Net Framework类库中自带的有实现坐标系转换功能的类。Reflector了一把,发现代码看不懂了都是利用矩阵操作的。矩阵这玩意儿,几年没用早忘完了。于是认真学习了一把,顺便把如何用矩阵进行坐标转换的过程记录和注解一下。文中部分内容摘取自MSDN,搜索“变换的矩阵表示形式”即可找到。首先review一下矩阵的基础知识:mn 矩阵是排列在 m 行和 n 列中的一系列数。下图显示几个矩阵。可以通过将单个元素相加来加合两个尺寸相同的矩阵。下图显示了两个矩阵相加的示例。mn 矩阵可与一个 np 矩阵相乘,结果为一个 mp 矩阵。第一个矩阵的列数必须与第二个矩阵的行数相同。例如,一个 42 矩阵与一个 23 矩阵相乘,产生一个 43 矩阵。矩阵的行列的平面点可视为矢量。例如,(2, 5) 是具有两个组件的矢量,(3, 7, 1) 是具有三个组件的矢量。两个矢