`
xiefeifeihu
  • 浏览: 99264 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

和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)。

分享到:
评论

相关推荐

    3D数学基础:图形与游戏开发.pdf

    3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。 本书涵盖了理论知识和C++实现代码。理论部分解释3D中数学和几何之间的关系,列出的技巧与公式...

    3d数学入门教程

    ### 3D数学入门教程知识点概述 #### 一、3D数学基础概念 **1.1 坐标系统** 在3D图形学中,坐标系统是定义空间位置的基础。通常使用的有两种主要类型:左手坐标系和右手坐标系。本教程重点介绍了右手坐标系。 - *...

    ESBMaths 一些有用的Delphi 数学公式包..rar

    ESBMaths是一个针对Delphi开发者的数学公式库,它为开发者提供了丰富的数学函数和算法,使得在Delphi编程环境中实现各种复杂的数学计算变得更为简便。这个压缩包中包含了一系列与数学运算相关的源代码和可能的示例...

    3D数学基础 图形与游戏开发(带目录)

    3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。, ...

    3D数学书籍

    在IT领域,尤其是在游戏开发和计算机图形学中,3D数学是至关重要的基础知识。这两本书——"3D数学基础:图形与游戏开发"和"3D游戏与计算机学图形学中的数学方法 第3版"提供了深入浅出的理论和实践指导。 首先,"3D...

    3D数学基础 图形与游戏开发

    《3D数学基础:图形与游戏开发》主要介绍了基本的3D数学概念,这对电脑游戏开发人员和编程人员来说尤为重要。作者详尽地讨论了数学理论,并在必要时提供几何说明,帮助读者形成直观的3D感。书中还提供了将理论应用于...

    3D数学基础 图形与游戏开发 高清版

    3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。 ...

    3D Program 常用公式 3D Program 常用公式 3D Program 常用公式

    根据提供的信息,我们可以总结出以下有关3D程序设计中的关键数学概念与公式: ### 一、向量运算 #### 1. 向量的标量积 - **定义**: 向量A与向量B的标量积表示为\( A \cdot B \),计算公式为: \[ A \cdot B = A_...

    3d数学与物理-3D数学-变换-运动学

    本系列培训资料主要涵盖了3D数学、变换以及运动学这三个核心主题,由讲师刘维甫精心讲解,旨在帮助初学者理解和应用相关知识。 首先,让我们深入3D数学。这是3D图形学的基石,它涉及到向量、矩阵、坐标系、投影和...

    3D数学基础:图形与游戏开发(英文原版)

    《3D数学基础:图形与游戏开发》一书的英文原版电子档,高清,绝对不是扫描版,配有详细的书签,可用来与中文版互查使用,最后配上中文版的目录以供大家参考下载 第1章 简介 1.1 什么是3D数学 1.2 为什么选择本书 ...

    3D中的数学(游戏开发,场景模拟方面)

    本文将从3D数学的基础概念出发,深入浅出地介绍与3D图形处理相关的数学原理。 ##### 1.1 坐标系 三维空间中的坐标系分为右手坐标系和左手坐标系。在右手坐标系中,如果拇指指向x轴正方向,食指指向y轴正方向,则...

    3D数学基础:图形与游戏开发

    《3D数学基础:图形与游戏开发》主要研究隐藏在3D几何世界背后的数学问题。涵盖了理论知识和C++实现代码。理论部分解释3D中数学和几何之间的关系,列出的技巧与公式可以当做参考手册以方便查找。实现部分演示了怎样...

    3D数学基础:图形与游戏开发-UnEncrypted

    由于提供的“部分内容”主要是重复的网址,这可能是由于OCR扫描技术识别错误导致的,我们无法从中提取有关3D数学基础的具体知识点。但是,根据标题和描述,我们可以推断出以下一些可能包含的知识点: 1. 向量数学:...

    (中文版)3D数学基础图形与游戏开发

    1. **向量与坐标系**:向量是3D数学的基础,用于表示方向和大小。书中会讲解点的坐标表示、向量的加减乘法、标量积(点积)和向量积(叉积),以及在不同坐标系(如笛卡尔坐标系、极坐标系)中的转换。 2. **线性...

    2017.9-3D建模中数学函数的巧妙应用(下)1

    通过3D建模,学生不仅能创造实物,还能深入理解数学概念的实际应用,从而达到教学相长的效果。最后,作者强调了3D建模软件在结合数学知识时展现出的创客教育魅力,并鼓励对此感兴趣的人进一步探索。

    05-点云配准数学原理 - 黑马机器人 _ PCL-3D点云1

    点云配准是3D计算机视觉和机器人领域中的关键技术,用于将两个或多个3D点云数据对齐,以便比较、融合或者分析它们之间的关系。本文主要探讨了点云配准的数学原理,并通过实例解释了如何将理论与代码对应起来。 首先...

    3d常用线性代数公式

    在3D游戏开发中,线性代数是...以上是3D游戏开发中常见的线性代数知识点,这些理论与公式在建模、动画、碰撞检测、光照计算等方面都发挥着关键作用。深入理解和熟练运用这些知识,将有助于提升3D游戏的视觉效果和性能。

    游戏编程数学和物理基础(上)

    为了更好地让读者掌握这些知识点,本书采用C++语言编写了大量程序案例,这些案例在具体的编程中实现了理论概念,让读者能够看到数学和物理公式如何在游戏开发中具体应用。此外,书中还包含了大量的可视化体验,即...

Global site tag (gtag.js) - Google Analytics