坐标系
在不同的领域和不同的背景下,选择不同的坐标系。如传统计算机图形学选用左手坐标系,线性代数则倾向于右手坐标系
从物体坐标系转换到世界坐标系的步骤:
1、将物体坐标轴顺时针旋转45度转换到惯性坐标系;
2、将惯性坐标系向下、左平移转换到世界坐标系;
向量
向量与位置无关紧要,只有大小和方向才是最重要的。
向量变负,将得到一个和原向量大小相等、方向相反的向量。
向量加减法——三角形法则。
(多个向量相加)
减法b-a代表了从a到b的向量。
向量点乘(Dot Product):
点乘得到一个标量。点乘结果描述了两个向量的相似程度,点积结果越大两向量越相似。
a·b | θ | 角度 | a和b |
>0 | 0=<θ<90 | 锐角acute | 方向基本相同 |
=0 | θ==90 | 直角right | 正交 |
<0 | 90<θ<=180 | 钝角obtuse | 方向基本相反 |
零向量和其他任何向量都垂直。
向量v在向量n上的投影:vⅡ,
向量叉乘(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)。
分享到:
相关推荐
3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。 本书涵盖了理论知识和C++实现代码。理论部分解释3D中数学和几何之间的关系,列出的技巧与公式...
### 3D数学入门教程知识点概述 #### 一、3D数学基础概念 **1.1 坐标系统** 在3D图形学中,坐标系统是定义空间位置的基础。通常使用的有两种主要类型:左手坐标系和右手坐标系。本教程重点介绍了右手坐标系。 - *...
ESBMaths是一个针对Delphi开发者的数学公式库,它为开发者提供了丰富的数学函数和算法,使得在Delphi编程环境中实现各种复杂的数学计算变得更为简便。这个压缩包中包含了一系列与数学运算相关的源代码和可能的示例...
3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。, ...
在IT领域,尤其是在游戏开发和计算机图形学中,3D数学是至关重要的基础知识。这两本书——"3D数学基础:图形与游戏开发"和"3D游戏与计算机学图形学中的数学方法 第3版"提供了深入浅出的理论和实践指导。 首先,"3D...
《3D数学基础:图形与游戏开发》主要介绍了基本的3D数学概念,这对电脑游戏开发人员和编程人员来说尤为重要。作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于...
3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。 ...
根据提供的信息,我们可以总结出以下有关3D程序设计中的关键数学概念与公式: ### 一、向量运算 #### 1. 向量的标量积 - **定义**: 向量A与向量B的标量积表示为\( A \cdot B \),计算公式为: \[ A \cdot B = A_...
本系列培训资料主要涵盖了3D数学、变换以及运动学这三个核心主题,由讲师刘维甫精心讲解,旨在帮助初学者理解和应用相关知识。 首先,让我们深入3D数学。这是3D图形学的基石,它涉及到向量、矩阵、坐标系、投影和...
《3D数学基础:图形与游戏开发》一书的英文原版电子档,高清,绝对不是扫描版,配有详细的书签,可用来与中文版互查使用,最后配上中文版的目录以供大家参考下载 第1章 简介 1.1 什么是3D数学 1.2 为什么选择本书 ...
本文将从3D数学的基础概念出发,深入浅出地介绍与3D图形处理相关的数学原理。 ##### 1.1 坐标系 三维空间中的坐标系分为右手坐标系和左手坐标系。在右手坐标系中,如果拇指指向x轴正方向,食指指向y轴正方向,则...
《3D数学基础:图形与游戏开发》主要研究隐藏在3D几何世界背后的数学问题。涵盖了理论知识和C++实现代码。理论部分解释3D中数学和几何之间的关系,列出的技巧与公式可以当做参考手册以方便查找。实现部分演示了怎样...
由于提供的“部分内容”主要是重复的网址,这可能是由于OCR扫描技术识别错误导致的,我们无法从中提取有关3D数学基础的具体知识点。但是,根据标题和描述,我们可以推断出以下一些可能包含的知识点: 1. 向量数学:...
1. **向量与坐标系**:向量是3D数学的基础,用于表示方向和大小。书中会讲解点的坐标表示、向量的加减乘法、标量积(点积)和向量积(叉积),以及在不同坐标系(如笛卡尔坐标系、极坐标系)中的转换。 2. **线性...
通过3D建模,学生不仅能创造实物,还能深入理解数学概念的实际应用,从而达到教学相长的效果。最后,作者强调了3D建模软件在结合数学知识时展现出的创客教育魅力,并鼓励对此感兴趣的人进一步探索。
点云配准是3D计算机视觉和机器人领域中的关键技术,用于将两个或多个3D点云数据对齐,以便比较、融合或者分析它们之间的关系。本文主要探讨了点云配准的数学原理,并通过实例解释了如何将理论与代码对应起来。 首先...
在3D游戏开发中,线性代数是...以上是3D游戏开发中常见的线性代数知识点,这些理论与公式在建模、动画、碰撞检测、光照计算等方面都发挥着关键作用。深入理解和熟练运用这些知识,将有助于提升3D游戏的视觉效果和性能。
为了更好地让读者掌握这些知识点,本书采用C++语言编写了大量程序案例,这些案例在具体的编程中实现了理论概念,让读者能够看到数学和物理公式如何在游戏开发中具体应用。此外,书中还包含了大量的可视化体验,即...