05/10/2020
05/14/2020 绕y轴旋转与绕x,z轴旋转公式是不一样的
矩阵和线性变换
变换物体与变换坐标系
变换物体与变换坐标系是等价的。将物体变换一个量等价于将坐标系变换一个相反的量。比如顺时针旋转物体20度等于逆时针旋转坐标系20度。
旋转
旋转一个向量原向量的长度是不会变的,如果先想象2D中绕着原点旋转的情形。
2D绕原点旋转
[cosθ−sinθsinθcosθ]
在2D坐标系绕原点旋转
3D绕x,y,z轴旋转
- 一定要区分左手还是右手坐标系,知道正方方向
⎣⎡1000cosθ−sinθ0sinθcosθ⎦⎤
绕x轴的3D旋转矩阵
⎣⎡cosθ0sinθ010−sinθ0cosθ⎦⎤
绕y轴的3D旋转矩阵,这边和其他旋转矩阵不一样,z轴变成x轴,x轴变成y轴
⎣⎡cosθ−sinθ0sinθcosθ0001⎦⎤
绕z轴的3D旋转矩阵
3D绕任意轴旋转
变换矩阵的表达式
(v−(v⋅n)n)cosθ+(n×v)sinθ+(v⋅n)n
缩放
沿坐标轴缩放
⎣⎡kx000ky000kz⎦⎤
沿任意方向缩放
基础表达式:
pnew=p+(k−1)(p⋅n)n
正交投影(平行投影)
向坐标轴(2D)或平面投影
投影意味着降维操作。有一种方法在某个方向上用零作为缩放因子。
[1000]
向x轴投影的2D矩阵
[0001]
向y轴投影的2D矩阵
⎣⎡100010000⎦⎤
向xy平面投影的3D矩阵
向任意直接或平面投影
通过修改上面的缩放因子等于0,进一步得到平面投影。
镜像(反射)
使缩放因子等于-1,得到反射。
沿直线(2D)或平面翻折(3D)
切变
坐标系的扭曲变换。切变的时候角度会发生变化,但是面积和体积却保持不变。基本思想是将某一坐标的乘积加到另一上。
例如,2D中,将y乘以某个因子然后加入到x上,得到x’ = x + sy.
[1s01]
2D切变,x坐标根据坐标y被切变,参数s控制着切变的方向和量
⎣⎡10s01t001⎦⎤
3D中,x,y坐标被坐标z改变。
包含切变与旋转的变换很容易混淆。
变换的组合
物体坐标系矩阵到世界坐标系矩阵再到摄影机坐标系矩阵,经过两次变换矩阵。也可以直接从物体坐标系矩阵到摄影机坐标系矩阵。
P表示物体方向或者位置
P世界=P物体M物体→世界
P摄像机=P世界M世界→摄像机
P摄像机=(P物体M物体→世界)M世界→摄像机=P物体(M物体→世界M世界→摄像机)
P摄像机=P物体M物体→摄像机
变换分类
线性变换
F(a+b)=F(a)+F(b)F(jka)=kF(a)
满足上述函数等式就是线性变换。例如两个向量相加变换与各自分别先变换再相加的结果是一样的。
仿射变换
仿射变换是指线性变换后接着平移。
可逆变换
存在一个逆变换可以撤销原变换。
等角变换
如果变换前后两向量夹角的大小和方向都不改变。例如平移,旋转,和均匀缩放。
正交变换
刚体变换
只改变物体的位置和方向,不包括形状。所有的长度、角度、面积和体积都不变。平移和旋转是仅有的刚体变换
矩阵的行列式
方阵M的行列式记作 |M| 或 “det M”。求法就是对角线和反对角线各自相乘,然后用主对角线的积减去反对角线元素的积。
行列式的公式计算
[m11m21m12m22]=m11m22−m12m21
2X2 行列式
图算法
3D数学 9.2
余子式
Mij
表示去掉第i行和第j列之后的矩阵
代数余子式
cij=(−1)i+j∣Mij∣
矩阵行列式重要特性
- |AB| = |A||B|
- |MT| = |M|
- 如果矩阵的任意行或列全为零,那么它的行列式等于零
几何解释
在2D中,行列式表示面积,在3D中表示体积。
矩阵的逆
M-1
I 为单位矩阵
M(M-1) = M-1M = I
标准伴随矩阵
记作“adj M”
M的标准伴随矩阵是代数余子式矩阵的转置。
代数余子式矩阵
重要性质
- |AB| = |A||B|
- |MT| = |M|
- 如果矩阵的任意行或列全为零,那么它的行列式等于零。
- 交换矩阵的任意两行或两列,行列式变负
- 任意行或列的非零积加到另一行或列不会改变行列式的值
几何解释
- 2D中,行列式等于以基向量为两边的平行四边形的有符号面积
- 3D中,平面六面体的体积
- 行列式为0,矩阵包含投影、如果为负,包含镜像
矩阵的逆
运算法则
M(M−1)=M−1M=I
几何解释
矩阵的逆在几何上可以计算变换的相反变换,能撤销元变换的变换
(vM)M−1=v(MM−1)=v
标准伴随矩阵
- 记作 “adj M”,定义为M的代数余子式的转置矩阵
逆公式
M−1=∣M∣adjM
性质
-
(M−1)−1=M
-
I−1=I
- 矩阵转置的逆等于它的逆矩阵的转置:
(MT)−1=(M−1)T)
-
(AB)−1=B−1A−1
正交矩阵
方阵M是正交的,M与M的转置的积等于单位矩阵
MMT=I=M正交
同时逆矩阵与原矩阵的积也是单位矩阵
MM−1=I
所以转置与逆相等
MT=M−1
由于逆矩阵的计算量很大,如果是正交矩阵,我们就不需要去求逆矩阵来撤销,直接使用转置来撤销变换后的矩阵
正交性质
缺点
证明正交性质与求逆矩阵的代价基本相等。
4 X 4齐次空间
关于如何平移3D向量。w代表1或者0。x,y,z,w一共4个分量的4D向量
w分量含义
当在2D空间中,加入第三个分量w,可以看成2D点(x,y)用齐次坐标表示为(x,y,1),所有的点都在1这个平面上,可以想象成3D中的Z轴。那那些不在w=1上的点,则将它们投影到w=1的平面上,所以齐次坐标(x,y,z)映射的实际2D点为(x/w,y/w)。
大家都知道,除一个大于1的分量w,获得的点或缩小,所以这就是近大远小的方法,它们最后会交互到一点上去。
平移矩阵
[xyz1]⎣⎢⎢⎡100Δx010Δy001Δz0001⎦⎥⎥⎤=[x+Δxy+Δyz+Δz1]
这个矩阵针第四行是对w分量的影响,实现了对点的移动操作。如果点坐标是(x,y,z,0)表示这个点在无穷原上,它无法被4X4矩阵影响,得到的点不会被平移。
- 4D向量的w分量可以开关4X4矩阵的平移部分。
- 4D齐次空间与4D平移矩阵是不一样的意思。
一般仿射变换
3D中矩阵仅能表达3D中的线性变换,所以当时没有考虑平移。平移这个操作需要升维。4X4矩阵的延伸更多的可能:通过嵌套矩阵和逆矩阵的联用
- 绕不通过原点的轴旋转
- 沿不穿过原点的平面缩放
- 沿不穿过原点的平面镜像
- 沿不穿过原点的平面正交投影
透视投影(近大远小)
运用4D投影到3D面上,使分向量除w。我们知道齐次坐标可以进行投影。
[xyzw]=[x/wy/wz/w1]
小孔成像
当我们知道小孔到投影平面的距离,设为d. 关于3D空间点投影之后的坐标为
[dx/zdy/zd]=[xyzz/d]
经过3D到4D升维操作的点坐标。
矩阵如何影响最后一个系数呢
⎣⎢⎢⎡100001000010001/d1⎦⎥⎥⎤
那个位置显示出小孔到投影平面z的距离。也可以对x,y其他平面进行投影。
透视投影与正交投影
一个近大远小,一个完全平移不产生变化。
3DMath 第8,9章