电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

利用矩阵进行坐标转换

利用矩阵进行坐标转换_第1页
1/8
利用矩阵进行坐标转换_第2页
2/8
利用矩阵进行坐标转换_第3页
3/8
利用矩阵进行坐标转换 之前做拓扑图,本来打算整一套坐标系统在里面的,后来因为时间原因暂时用了最原始的方法实现。现在稍稍得闲,重新开始思考这个问题。不过在搜索的时候,意外发现.Net Framework 类库中自带的有实现坐标系转换功能的类。Reflector 了一把,发现代码看不懂了——都是利用矩阵操作的。矩阵这玩意儿,几年没用早忘完了。于是认真学习了一把,顺便把如何用矩阵进行坐标转换的过程记录和注解一下。文中部分内容摘取自 MSDN,搜索“变换的矩阵表示形式”即可找到。 首先 review 一下矩阵的基础知识: m×n 矩阵是排列在 m 行和 n 列中的一系列数。下图显示几个矩阵。 可以通过将单个元素相加来加合两个尺寸相同的矩阵。下图显示了两个矩阵相加的示例。 m×n 矩阵可与一个 n×p 矩阵相乘,结果为一个 m×p 矩阵。第一个矩阵的列数必须与第二个矩阵的行数相同。例如,一个 4×2 矩阵与一个 2×3 矩阵相乘,产生一个 4×3 矩阵。 矩阵的行列的平面点可视为矢量。例如,(2, 5) 是具有两个组件的矢量,(3, 7, 1) 是具有三个组件的矢量。两个矢量的点积定义如下: (a, b) ? (c, d) = ac + bd (a, b, c) ? (d, e, f) = ad + be + cf 例如,(2, 3) 和 (5, 4) 的点积是 (2)(5) + (3)(4) = 22。(2, 5, 1) 和 (4, 3, 1) 的点积是 (2)(4) + (5)(3) + (1)(1) = 24。请注意,两个矢量的点积是数字,而不是另一个矢量。另外请注意,只有当两个矢量的组件数相同时,才能计算点积。 将 A(i, j) 作为矩阵 A 中第 i 行、第 j 列的项。例如,A(3, 2)是矩阵 A 中第 3 行、第 2 列的项。假定 A、B 和 C 是矩阵,且 AB = C,则 C 的项计算如下: C(i, j) =(A 的第 i 行)?(B 的第 j 列) 下图显示了矩阵相乘的几个示例。 以第二个等式为例,假设等式两边的矩阵分别是a、b、c,1*3的矩阵和 3*2 的矩阵相乘,得到的结果为1*2 的矩阵。其中 c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0],c[0][1]=a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]。 矩阵的加法、乘法,可以用来做坐标转换。我们通常使用 3*3(如果不需要旋转,则 2*2 的矩阵即可)的矩阵来做平面上的各种坐标转换,包括 x/y 轴的平移、旋转。现在来看一个简单的坐标系转换的例子:假设我们的客户区分辨率是100*100,要在客户区中心点画...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

利用矩阵进行坐标转换

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部