和3D相关的一些数学概念和公式

坐标系

在不同的领域和不同的背景下,选择不同的坐标系。如传统计算机图形学选用左手坐标系,线性代数则倾向于右手坐标系

clip_image001[19]

clip_image002[9]

clip_image003[9]

从物体坐标系转换到世界坐标系的步骤:

1、将物体坐标轴顺时针旋转45度转换到惯性坐标系;

2、将惯性坐标系向下、左平移转换到世界坐标系;

向量

向量与位置无关紧要,只有大小和方向才是最重要的。

向量变负,将得到一个和原向量大小相等、方向相反的向量。

向量加减法——三角形法则。

clip_image004[9]

clip_image005[9]

(多个向量相加)

减法b-a代表了从a到b的向量。

向量点乘(Dot Product):

clip_image006[9]

点乘得到一个标量。点乘结果描述了两个向量的相似程度,点积结果越大两向量越相似。

clip_image007[9]

clip_image008[9]

clip_image009[9]

a·b

θ

角度

a和b

>0

0=<θ<90

锐角acute

方向基本相同

=0

θ==90

直角right

正交

<0

90 <θ> <=180

钝角obtuse

方向基本相反

零向量和其他任何向量都垂直。

向量v在向量n上的投影:vclip_image010[9]clip_image011[10]

向量叉乘(Cross Product)

clip_image012[9]

叉乘不满足交换律也不满足结合律,但满足反交换律:a×b = (b×a)

叉乘得到的向量垂直与原来的两个分量:

clip_image013[9]

a×b的长度为向量的大小与向量夹角sin值的积:

clip_image014[9]

也等于以ab为边的平行四边形的面积:

clip_image015[9]

零向量和其他任何向量都平行。

clip_image016[9]
clip_image017[9]
clip_image018[9]
clip_image019[9]

矩阵

矩阵乘法:一个r×n的矩阵A能和一个n×c的矩阵B相乘,得到一个r×c的矩阵,记为AB

clip_image020[9]

clip_image021[9]

任意矩阵M和一个方阵相乘,不管从哪边乘,都将得到一个与M大小相同的矩阵。单位矩阵相乘:MI=IM=M。

矩阵积的转置等于先转置再以相反的顺序乘:clip_image022[9]

clip_image024[9]

行向量左乘矩阵时,结果是行向量。列向量右乘矩阵时,结果是列向量。

矩阵——向量乘法,满足对向量加法的分配律:(v+w)M=vM+wM。

线性无关——不在同一个平面。

线性变换:满足F(a+b)=F(a)+F(b)和F(ka)=kF(a)。

映射F(a)=aM,当M为任意方阵时,说映射是一个线性变换

零向量的任意线性变换的结果仍然是零向量。线性变换不会导致平移(原点位置上不会变化)。

行列式的几何意义:2D中是以基向量为边的平行四边形的有符号面积;3D中是以基向量为边的平行六面体的有符号体积。

如果矩阵行列式为0,那么该矩阵包含投影。

如果矩阵行列式为负,那么该矩阵包含镜像。

方阵M的行列式:

clip_image025[9]

clip_image026[9]

clip_image027[9]

代数余子式:从矩阵M中除去第i行第j列后剩下的矩阵。

clip_image028[9]

clip_image029[9]

矩阵的逆:M与M-1相乘时,结果是单位矩阵I。则M-1为M的逆。

奇异矩阵:如果一个矩阵没有逆矩阵,则称它不可逆或奇异矩阵。如果一个矩阵有逆矩阵,则称它可逆或非奇异的。

标准伴随矩阵:adj M,定义为M的代数余子式矩阵的转置矩阵。

矩阵的逆能用标准伴随矩阵除以行列式来求得:

clip_image030[9]

矩阵的逆的重要性质:

如果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平移:

clip_image032[9]

clip_image033[9]

能将任意4×4矩阵分解为线性变换不和和平移部分:

clip_image034[9]

透视投影

clip_image035[9]

小孔成像

点p通过原点向平面z=-d投影的结果:

clip_image036[9]

clip_image037[9]

clip_image038[9]

欧拉角:将方位分解成绕三个互相垂直的轴旋转。(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中的向量。

clip_image039[9]

单位四元数:[1,0]

四元数的模:

clip_image040[9]

clip_image041[9]

clip_image042[9]

clip_image043[9]

clip_image044[9]

四元数插值——slerp(Spherical Linear interpolation球面线性插值)

clip_image045[9]

clip_image046[9]

标准线性插值:

clip_image047[9]

四元数样条——squad

clip_image048[9]

clip_image049[9]

clip_image050[9]

2D旋转矩阵:

clip_image051[9]

绕任意轴(n是单位向量)旋转的3D旋转矩阵:

clip_image053[9]

沿任意轴(单位向量n为缩放方向,k为缩放因子)的2D缩放矩阵:

clip_image054[9]

沿任意轴(单位向量n为缩放方向,k为缩放因子)的3D缩放矩阵:

clip_image056[9]

clip_image057[9]

clip_image058[9]

使缩放因子k=0导出投影矩阵:

clip_image059[9]

向垂直于n的平面投影的3D矩阵:

clip_image060[9]

使缩放因子k=-1导出镜像矩阵:

沿任意通过原点且垂直于n的反射轴的2D镜像矩阵——

clip_image061[9]

沿通过原点且垂直于n的平面镜像的3D镜像矩阵——

clip_image062[9]

切变:切变是一种坐标系“扭曲”变换,非均匀地拉伸它。切变的时候角度会发生变化,但面积和体积不变。

clip_image063[9]

变换的组合就是利用矩阵乘法及其结合律。

几何图元

直线(Line)、线段(Line Segment)、射线(Ray)。

clip_image064[9]clip_image065[9]

clip_image066[9]

clip_image067[9]

clip_image068[9]

球(Sphere)和圆

clip_image069[9]

clip_image070[9]clip_image071[9]

clip_image072[9]

clip_image073[9]clip_image074[9]

clip_image075[9]

矩形边界框:

AABB:Axially aligned bounding boxes(轴对齐矩形边界框)

OBB:oriented bounding box(方向矩形边界框)

平面(Plane)

clip_image076[9]

n为平面的法向量。

clip_image077[9]

clip_image078[9]

clip_image079[9]

三角形(Triangle)

clip_image080[9]

clip_image081[9]

clip_image082[9]

clip_image083[9]

clip_image084[9]

重心(barycentric)(Center of gravity):中线(顶点到对边中心点的连线)交点。

clip_image085[9]

clip_image086[9]

clip_image087[9]

clip_image088[9]

clip_image089[9]

内心(Incenter):到三边距离相等的点(内切圆的圆心),也是角平分线的交点。

内切圆解决了寻找与三条直线相切的圆的问题。

clip_image090[9]

外心(Circumcenter):到各顶点距离相等的点(外切圆的圆心),也是各边垂直平分线的交点。

外心和外切圆半径解决了寻找过三个点的圆的问题。

clip_image091[9]

clip_image092[9]

多边形(Polygons)

简单多边形、复杂多边形

自相交多边形(Self-intersecting Polygons)

凸(Convex)多边形、凹(Concave)多边形

三角分解和扇形分解

几何检测

clip_image093[9]

clip_image094[9]

clip_image096[9]

clip_image097[9]

clip_image098[9]

clip_image099[9]

clip_image100[9]

clip_image101[9]

clip_image102[9]

clip_image103[9]

三角网格(顶点缓存、三角带、三角扇):顶点焊接(Welding Vertices)操作、面拆分(Detaching Faces)、边缩坍(Edge Collapse使边的两个顶点变为一个)、网格消减(Mesh Decimation)。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值