坐标系
在不同的领域和不同的背景下,选择不同的坐标系。如传统计算机图形学选用左手坐标系,线性代数则倾向于右手坐标系
从物体坐标系转换到世界坐标系的步骤:
1、将物体坐标轴顺时针旋转45度转换到惯性坐标系;
2、将惯性坐标系向下、左平移转换到世界坐标系;
向量
向量与位置无关紧要,只有大小和方向才是最重要的。
向量变负,将得到一个和原向量大小相等、方向相反的向量。
向量加减法——三角形法则。
(多个向量相加)
减法b-a代表了从a到b的向量。
向量点乘(Dot Product):
点乘得到一个标量。点乘结果描述了两个向量的相似程度,点积结果越大两向量越相似。
a·b | θ | 角度 | a和b |
>0 | 0=<θ<90 | 锐角acute | 方向基本相同 |
=0 | θ==90 | 直角right | 正交 |
<0 | 90<θ<=180 | 钝角obtuse | 方向基本相反 |
零向量和其他任何向量都垂直。
向量叉乘(Cross Product)
叉乘不满足交换律也不满足结合律,但满足反交换律:a×b = –(b×a)。
叉乘得到的向量垂直与原来的两个分量:
a×b的长度为向量的大小与向量夹角sin值的积:
也等于以a和b为边的平行四边形的面积:
零向量和其他任何向量都平行。
矩阵
矩阵乘法:一个r×n的矩阵A能和一个n×c的矩阵B相乘,得到一个r×c的矩阵,记为AB
任意矩阵M和一个方阵相乘,不管从哪边乘,都将得到一个与M大小相同的矩阵。单位矩阵相乘:MI=IM=M。
行向量左乘矩阵时,结果是行向量。列向量右乘矩阵时,结果是列向量。
矩阵——向量乘法,满足对向量加法的分配律:(v+w)M=vM+wM。
线性无关——不在同一个平面。
线性变换:满足F(a+b)=F(a)+F(b)和F(ka)=kF(a)。
映射F(a)=aM,当M为任意方阵时,说映射是一个线性变换
零向量的任意线性变换的结果仍然是零向量。线性变换不会导致平移(原点位置上不会变化)。
行列式的几何意义:2D中是以基向量为边的平行四边形的有符号面积;3D中是以基向量为边的平行六面体的有符号体积。
如果矩阵行列式为0,那么该矩阵包含投影。
如果矩阵行列式为负,那么该矩阵包含镜像。
方阵M的行列式:
代数余子式:从矩阵M中除去第i行第j列后剩下的矩阵。
矩阵的逆:M与M-1相乘时,结果是单位矩阵I。则M-1为M的逆。
奇异矩阵:如果一个矩阵没有逆矩阵,则称它不可逆或奇异矩阵。如果一个矩阵有逆矩阵,则称它可逆或非奇异的。
标准伴随矩阵:adj M,定义为M的代数余子式矩阵的转置矩阵。
矩阵的逆能用标准伴随矩阵除以行列式来求得:
矩阵的逆的重要性质:
如果M是非奇异矩阵,则该矩阵的逆的逆等于原矩阵:(M-1)-1=M.
单位矩阵的逆势它本身:I-1=I
矩阵转置的逆等于它逆的转置:(MT)-1=(M-1)T
矩阵乘积的逆等于矩阵的逆的相反顺序的乘积:(AB)-1= B-1 A-1
正交矩阵:若方阵M是正交的,则当且仅当M与它转置MT的乘积等于单位矩阵。MMT=I.
如果一个矩阵式正交的,那么它的转置等于它的逆:MT= M-1。
若一个矩阵是正交的,它必须满足:
矩阵的每一行都是单位向量。
矩阵的所有行都相互垂直。
施密特正交化
3×3矩阵仅能表达3D中的线性变换(没做平移),4×4矩阵可以构造包含平移的一般仿射变换(由一个线性变换接上一个平移组成)矩阵。如:绕不通过原点的轴旋转;沿不穿过原点的平面缩放、镜像、正交投影等;
4D齐次坐标:(x,y,z,w)第四个w为齐次坐标。通过投影得到的实际3D点为(x/w,y/w,z/w)。w=0时4D点表示“无限远点”,它描述了一个方向。
4D矩阵实现3D平移:
能将任意4×4矩阵分解为线性变换不和和平移部分:
透视投影
小孔成像
点p通过原点向平面z=-d投影的结果:
欧拉角:将方位分解成绕三个互相垂直的轴旋转。(heading:绕物体坐标(此时和惯性坐标系重合)y轴的旋转量;pitch:绕物体坐标系x轴旋转量;bank:绕物体坐标系z轴旋转量。)
也叫roll-pitch-yaw,roll类似于bank,yaw类似于heading。
四元数
四元数:[w,v]或[w,(x,y,z)],w是标量分量;v是3D向量分量。
一个四元数定义了一个复数:w+xi+yj+zk。四元数能旋转3D中的向量。
单位四元数:[1,0]
四元数的模:
四元数插值——slerp(Spherical Linear interpolation球面线性插值)
标准线性插值:
四元数样条——squad
2D旋转矩阵:
绕任意轴(n是单位向量)旋转的3D旋转矩阵:
沿任意轴(单位向量n为缩放方向,k为缩放因子)的2D缩放矩阵:
沿任意轴(单位向量n为缩放方向,k为缩放因子)的3D缩放矩阵:
使缩放因子k=0导出投影矩阵:
向垂直于n的平面投影的3D矩阵:
使缩放因子k=-1导出镜像矩阵:
沿任意通过原点且垂直于n的反射轴的2D镜像矩阵——
沿通过原点且垂直于n的平面镜像的3D镜像矩阵——
切变:切变是一种坐标系“扭曲”变换,非均匀地拉伸它。切变的时候角度会发生变化,但面积和体积不变。
变换的组合就是利用矩阵乘法及其结合律。
几何图元
直线(Line)、线段(Line Segment)、射线(Ray)。
球(Sphere)和圆
矩形边界框:
AABB:Axially aligned bounding boxes(轴对齐矩形边界框)
OBB:oriented bounding box(方向矩形边界框)
平面(Plane)
n为平面的法向量。
三角形(Triangle)
重心(barycentric)(Center of gravity):中线(顶点到对边中心点的连线)交点。
内心(Incenter):到三边距离相等的点(内切圆的圆心),也是角平分线的交点。
内切圆解决了寻找与三条直线相切的圆的问题。
外心(Circumcenter):到各顶点距离相等的点(外切圆的圆心),也是各边垂直平分线的交点。
外心和外切圆半径解决了寻找过三个点的圆的问题。
多边形(Polygons)
简单多边形、复杂多边形
自相交多边形(Self-intersecting Polygons)
凸(Convex)多边形、凹(Concave)多边形
三角分解和扇形分解
几何检测
三角网格(顶点缓存、三角带、三角扇):顶点焊接(Welding Vertices)操作、面拆分(Detaching Faces)、边缩坍(Edge Collapse使边的两个顶点变为一个)、网格消减(Mesh Decimation)。