旋转矩阵 The Rotation Matrix
参考:
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,则三者的关系是:P • 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ß2 + … + anßn
就称B是Rn这个实向量空间中的一组基(或基底),有序数组(a1, a2 … an)是向量α关于基B(或说在基B下)的坐标,记作αB = (a1, a2 … an) 或 αB = (a1, a2 … an) T
可以看到,scratchapixe阐述的角度是如何让一个点或者向量,乘以一个矩阵,移动到同一个坐标系的另外一个位置
而线性代数上,阐述的是同一个点在两组不同的基的坐标,以及两组基之间的过度矩阵怎样计算
而二者的内在联系具体怎样理解,我还要继续学习一下
旋转矩阵 The Rotation Matrix的更多相关文章
- 旋转矩阵(Rotation Matrix)的推导及其应用
向量的平移,比较简单. 缩放也较为简单 矩阵如何进行计算呢?之前的文章中有简介一种方法,把行旋转一下,然后与右侧对应相乘.在谷歌图片搜索旋转矩阵时,看到这张动图,觉得表述的很清晰了. 稍微复杂一点的是 ...
- 3D Computer Grapihcs Using OpenGL - 12 Rotation Matrix
为了证明我们上节渲染出来的是一个立方体而不是一个平面,我们决定将它旋转一定角度,这样我们就需要一个旋转矩阵(也属于ModelTransformMatrix的一部分) 上一节我们的ModelTransf ...
- 三维空间旋转和Three.JS中的实现
三维空间中主要有两种几何变换,一种是位置的变换,位置变换和二维空间的是一样的.假设一点P(X1,Y1,Z1) 移动到Q(X2,Y2,Z2)只要简单的让P点的坐标值加上偏移值就可以了.但是三维空间的旋转 ...
- Three.js 学习笔记(1)--坐标体系和旋转
前言 JavaScript 3D library The aim of the project is to create an easy to use, lightweight, 3D library ...
- cordic
cordic里向量旋转得到新向量,利用的是旋转矩阵 摘自百度百科维基百科 旋转矩阵(Rotation matrix)是在乘以一个向量的时候改变向量的方向但不改变大小的效果的矩阵.旋转矩阵不包括反演,它 ...
- WebGL常用数学公式
1.三角函数 坐标轴采用右手法则,沿Z轴的逆时针方向为正角度,假设原始点为p(x,y,z),a是X轴旋转到点p的角度,r是从原始点到p点的距离.用这两个变量计算出点p的坐标,等式如下: x = rco ...
- UE4 常用数学
转自:https://dawnarc.com/2016/07/mathlinear-algebra%E5%90%91%E9%87%8F%E7%A7%AF%E5%A4%96%E7%A7%AF%E5%8F ...
- PCL点云库:对点云进行变换(Using a matrix to transform a point cloud)
点云数据可以用ASCII码的形式存储在PCD文件中(关于该格式的描述可以参考链接:The PCD (Point Cloud Data) file format).为了生成三维点云数据,在excel中用 ...
- A geometric interpretation of the covariance matrix
A geometric interpretation of the covariance matrix Contents [hide] 1 Introduction 2 Eigendecomposit ...
随机推荐
- Ubuntu的内核转储工具【转】
转自:http://www.cnblogs.com/wwang/archive/2010/11/19/1881304.html 在我的上一篇博文<Linux内核的Oops>的最后介绍到一个 ...
- rman 示例
背景 rman,听这名字,好像有点真的男人意思.这玩意其实也简单,只是老忘,作为一个oracle dba爱好者,怎么少了rman呢,这个好像是oracle体系的最后一环,把它掌握了,就完成oracle ...
- Windows Server 2008 R2 报错事件ID:10之WMI报错
问题描述: Details -Event filter with query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHE ...
- 快速解决PHP调用Word组件DCOM权限的问题
1. 首先必须要在电脑上安装 Office 2. windows+r : 输入 dcomcnfg.exe 打开组件服务,然后双击 组件服务 ==> 双击 计算机 ==> 双击 我的电脑 = ...
- java 系统属性
java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java ...
- ebs 12.1.1升级到12.1.3
升级过程参考 Oracle电子商务套件版本12.1.3自述文件 (文档 ID 1534411.1) 应用启动到维护模式 adadmin 打以下patch 9239089 9239090 92390 ...
- Android调试adb devices找不到设备【转】
adb驱动已经安装成功,但是adb devices却无法找到设备,USB大容量存储也是正常: 以前如果出现此种情况,我能想到的原因如下: 1.杀毒软件问题(关闭MacAfee) 2.驱动安装有误,重新 ...
- 【转】光盘和U盘安装win7和ubuntu14.04全步骤
详细步骤见原链接:http://brianway.github.io/2016/01/18/linux-win7-ubuntu-setup-by-USBandCD/ 安装Linux步骤 1. 在win ...
- Confluence 6 隐藏人员目录
人员目录提供了你 Confluence 中所有用户的列表. 如果你希望禁用人员目录,请在你应用程序命令行中的 Configuring System Properties 进行设置. 希望为匿名用户禁用 ...
- Confluence 6 使用 WebDAV 客户端来对页面进行操作
下面的部分告诉你如何在不同的系统中来设置原生的 WebDAV 客户端,这个客户端通常显示在你操作系统的文件浏览器中,例如,Windows 的 Windows Explorer 或者 Linux 的 K ...