Mihooke的技术专栏 C++ and Python Coder

3D数学基础

2018-11-17

阅读:

3D
 

坐标系

1.笛卡尔坐标系

2.世界坐标系

3.物体坐标系

4.惯性坐标系:是世界坐标系和物体坐标系的半途,从物体坐标系到惯性坐标系只需旋转,从惯性坐标系到世界坐标系只需平移

5.相机坐标系

向量

向量:只有大小和方向的有向线段(几何意义);数字列表或数组(数学意义)

标量

向量与点:向量描述位移[x,y],点描述位置(x,y)

3*3矩阵的几何意义,为什么向量乘以矩阵可以实现坐标空间变换? 向量运算

零向量是加性单位元

负向量是加性逆元

向量的大小(长度或模):用向量两边加竖线表示   v  

标量与向量的乘法:结果还是一个向量

标准化向量(单位向量或法线)

向量的加法减法

向量点乘(内积):结果是标量,等于向量大小与向量夹角的cos值

向量投影,在某个轴上的分量

向量叉乘(叉积):结果是向量,得到的向量垂直于原来2个向量,结果向量的长度等于向量的大小与向量夹角的sin值的积

矩阵

矩阵:描述2个坐标系之间的关系,描述转换关系

方阵

单位矩阵

转置

矩阵乘法 矩阵与矩阵相乘M1(rx) 和 M2(xc)相乘

如果把矩阵的行当作坐标系的基向量,那么乘以该矩阵就相当于执行了一次坐标转换

矩阵的每一行都能解释为转换后的基向量

线性变换

线性变换,包括旋转/投影/缩放/切变/镜像

包含平移的变换叫仿射变换,仿射变换是指线性变换后接着平移

具有形式v’ = vM + b都是仿射变换

满足F(a+b) = F(a) + F(b)和F(ka) = kF(a),则称映射F(a)是线性的

所有基本变换除了投影都是可逆的,求逆变换等价于求矩阵的逆,如果矩阵是奇异的,则变换不可逆

如果变换前后两向量的夹角大小和方向都不改变,则该变换是等角的(平移/旋转/均匀缩放)

正交变换是轴保持互相垂直,而且不进行缩放变换

刚体变换是只改变物体的位置和方向,所有长度,角度,面积,体积都不变,平移和旋转是仅有的刚体变换

矩阵运算

行列式

矩阵的逆

MM-1 = I

如果一个矩阵有逆矩阵,那它是可逆的或非奇异的;奇异矩阵的行列式为零

伴随矩阵,M的代数余子式矩阵的转置矩阵

矩阵M的逆M-1 = 伴随矩阵 / M的行列式

正交矩阵:M与它的转置矩阵乘积等于I;如果M是正交的就可以完全避免计算逆矩阵了,因为逆矩阵计算量大

如果一组向量互相垂直,他们称为正交基

4*4齐次矩阵(x,y,z,w),齐次坐标,齐次空间

引入齐次矩阵是因为3*3变换矩阵是线性变换,不包括平移,齐次矩阵包含了旋转和平移

旋转

方向:比如向量有方向,但没有方位,因为向量没有长宽厚度之说

方位:物体的朝向,是通过相对已知方位的旋转来描述的,旋转的量称作角位移

用矩阵和四元数来表示角位移;欧拉角来表示方位

矩阵

欧拉角将方位分解为绕三个互相垂直轴的旋转(heading(y)-pitch(x)-bank(z)/roll(z)-pitch(x)-yaw(y))

万向锁,做了限制:如果pitch为正负90,则bank为零

简单插值,限制:bank范围是正负180,pitch范围是正负90

四元数的共轭,向量部分变负

四元数的逆等于它的共轭除以它的模

四元数乘积的模等于模的乘积


下一篇 UNP第五章笔记

Comments

Content