博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
旋转矩阵 The Rotation Matrix
阅读量:4958 次
发布时间:2019-06-12

本文共 1134 字,大约阅读时间需要 3 分钟。

参考:

http://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/how-does-matrix-work-part-1

http://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/how-does-matrix-work-part-2

 

在scratchapixel的教程中,旋转矩阵是一种能将点或者向量绕某个轴旋转的矩阵,这里说的点和向量,是以自然基(或称为标准基)为基底的。

如上图,Z轴为贯穿屏幕的轴,点P绕Z轴逆时针旋转到Pt,记旋转矩阵为R,则三者的关系是: R = Pt

在scratchapixe的l教程中,作者最后试算出了这样的R,但并未做证明,这样的R,由旋转的轴不同,分别有绕X轴旋转的Rx,绕Y轴旋转的Ry,绕Z轴旋转的Rz

其中Θ是逆时针旋转的角度

 

假设点P的坐标是(1,0,0),让它绕Z轴顺时针旋转Θ角(弧度单位),那么Pt的坐标是(cos(Θ), sin(Θ), 0),例如Θ是π/2时,Pt的坐标是(0, -1, 0)

假设点P的坐标是(0,1,0),让它绕Z轴顺时针旋转Θ角(弧度单位),那么Pt的坐标是(-sin(Θ), cos(Θ), 0),例如Θ是π/2时,Pt的坐标是(1, 0, 0)

刚好是分别是Rz的前两行,在scratchapixe的l教程中说,“理解矩阵Rz的关键一点,就是其每一行代表了坐标系中的一个轴,整个Rz代表了一组基”

 

这其实有点难以理解,于是翻出居余马的线性代数,第四章讲向量空间与线性变换,里面有关于基的定义是这样的:

定义:设有序向量组B={

ß1ß2…ßn}是实向量空间Rn的子集,如果B线性无关,则Rn中任一向量α,均可由B线性表示即

  α = a1ß1 + a2ß+ … + anßn

就称B是Rn这个实向量空间中的一组基(或基底),有序数组(a1, a2 … an)是向量α关于基B(或说在基B下)的坐标,记作αB= (a1, a2 … an) 或 αB = (a1, a2 … anT

 

可以看到,scratchapixe阐述的角度是如何让一个点或者向量,乘以一个矩阵,移动到同一个坐标系的另外一个位置

而线性代数上,阐述的是同一个点在两组不同的基的坐标,以及两组基之间的过度矩阵怎样计算

而二者的内在联系具体怎样理解,我还要继续学习一下

转载于:https://www.cnblogs.com/heben/p/9182090.html

你可能感兴趣的文章
软件工程个人作业02
查看>>
Spark修改字体方法
查看>>
数组及方法
查看>>
gitlab + jenkins + docker + k8s
查看>>
结对编程第一次作业
查看>>
数据挖掘导论章2数据_by二卷
查看>>
leetcode88—Merge Sorted Array
查看>>
ES6笔记01-声明变量
查看>>
IE兼容方法
查看>>
微软企业库Unity学习笔记(二)
查看>>
使用汉字构形检索疑难字
查看>>
超赞的在线纹理制作工具和大量纹理图片
查看>>
SQL IN, NOT IN, EXISTS, NOT EXISTS
查看>>
javascript 获取按的哪个键
查看>>
问卷调查
查看>>
怎样下载安装Firebug和使用Firebug
查看>>
Suricata编译(fedora)
查看>>
小强升职记
查看>>
看源码原则和注意事项
查看>>
结对作业(2)----单元测试
查看>>