3D数学基础 图形与游戏开发的学习 第三章 多坐标系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34536551/article/details/71108313

笛卡尔坐标系 的定义 :

第一节:1D数学

计算机图形学第一准则:近似原则如果它看上去是对的它就是对的

1.基本数学概念

❤自然数:人类在大自然中对自己的羊或者牛进行计数,而出现自然数,所以从0到N的整数被称为自然数。

❤负数:有时候人类在交易物品的时候会先赊着,此时就是用负数表示。

❤分数:人类在交易物品的时候,例如卖羊的时候,我们可能吃不了那么多,只需要1/4的羊肉,此时就产生了分数。

❤无理数:人类文明在进化的过程中,需要用到一些特殊的数,例如π,这种无限不循环小数被称为无理数。

2.基本数学概念的图示
这里写图片描述

3.离散数学和连续数学

❤研究自然数和整数的领域称作离散数学,研究实数领域称作连续数学。

❤所谓的离散就是可数的,例如我数地球上的所有物体的个数,仅用离散数学就可以做到,并且只需要一个很大的自然数就可以完成。
❤连续数学是不可数的,例如外星文明,它们从来不是呀π,而是使用3.1415926…,这样的文明用这样的准确数字就可以建造更完美的世界。

4.C++中提供的数据类型

C++中提供的都是有理数,short,int是整数,float,double是分数或者叫小数。

5、2D笛卡尔数学

无论x轴和y轴旋转选择什么方向,总能通过旋转使x轴向右为正,y轴向上为正。所以从某种意义上说,所有2D坐标系都是"等价"的。

6、 从2D到3D

3D坐标系之间不一定是等价的。实际上,存在两种完全不同的3D坐标系:左手坐标系和右手坐标系。如果同属于左手坐标系或右手坐标系,则可以通过旋转来重合,否则不可以。

左手坐标系:伸出左手,让拇指和食指成“L”型,大拇指向右,食指向上。其余的手指指向前方,就是一个左手坐标系,拇指,食指,和其余三个手指分别x,y,z轴的正方向。

7、每个2D笛卡尔坐标系都有一个特殊的点,称为原点(0,0)它是坐标系的中心。

8、每个2D笛卡尔坐标系都有两条过原点的直线向两边无限延伸,称为轴,两个轴互相垂直。

9、笛卡尔坐标系定位

坐标系是一个精确定位点的框架。为了在笛卡尔坐标系中定位点,引入了笛卡尔坐标的概念。在2D平面中,两个数(x,y)就可以定义一个点。坐标的每个分量都表明了该点与原点之间的距离和方位,每个分量都是到相应轴的有符号距离。如下图所示,x分量表示该点到y轴的有符号距离,同样y分量表示该点到x轴的有符号距离。“有符号距离”指在某个方向上距离为正,而在相反方向为负。

这里写图片描述

3D坐标系:

3D坐标系表示三维空间系,3D坐标系存在三个轴,比2D坐标系多了一个Z轴,3个轴相互垂直,也就是没个轴都有垂直于其他两个轴。在3D坐标系中点位需要3个数:x、y、z.

这里写图片描述

左手坐标系、右手坐标系:

3d坐标系存在两种完全不同的坐标系,左手坐标系和右手坐标系。如果属于相同的坐标系,可以通过旋转来重合,否则是不可以重合的。两个坐标系之间没有好坏,之是应用与不懂的场景。 计算机中使用左手坐标系,线性代数中使用右手坐标系。

多坐标系:

在这里插入图片描述

第一节:为什么要有多坐标系

因为在不同的情况下使用不同的坐标系更加的方便。某些信息只有在特定的上下文环境中获得。

那么任何一个3D坐标系都是可以无限延伸的,可以包含空间中所有的点。因此只需选定一个点作为世界坐标系就可以了,这样不是更简单吗?事实上,并不是这样的,不同的情况使用不同的坐标系才更简单。

多坐标系”顾名思义就是在某些特定的情况下使用多种坐标系。这样有什么好处呢?当然是有其道理的,比如:在你的房间里以某个角落为原点,房间里的东西的位置及其移动后位置可以很明切的知道,相同如果是另一个房间就以另一个房间的角落为原点处理另一个房间的东西或物品,但是当在这个房间计算另一个房间的东西或物品的位置时,这就不太好办了,所以有必要引入”大“一点的坐标系,以这栋楼某处为原点的坐标系,以这个城市为坐标系…

第二节:世界坐标系

各种坐标系都是有用的,没有一无是处的坐标系,在不同的情况表现的意义不同而已。

1.世界坐标系的概念

世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。另一方面说,能用世界坐标系描述其他坐标系的位置,而不能用更大的坐标系来描述世界坐标系。世界坐标系就是最大的坐标系,世界坐标系也被称为全局坐标系或者宇宙坐标系。

世界坐标系是一个特殊的坐标系,它使得其他一些坐标系相互有了关联,简单一点就是它能够描述其他坐标系的位置,而没有其他更大的坐标系来描述它的位置。

世界坐标系所建立的正是我们所“关心"的最大坐标系,所以世界坐标系不必是整个世界。术语"绝对"的意思是"我们所关心的最大坐标系中的绝对",从另一方面说,”绝对“意味着"在世界坐标系中".

2.关于世界坐标系的常见问题

(1)世界坐标系的典型问题都是关于初始位置和环境的。如下
(2)每个物体的位置和方向
(3)摄像机的位置和方向
(4)世界中每一点的地形是什么(如山丘,建筑,湖泊等)
(5)各物体从哪里来到哪里去(NPC的运动策略)

第三节:物体坐标系

1.物体坐标系:特定物体相关联的坐标系。每个物体都有他们独立的坐标系,当物体位移或改变方向时,和该物体相关的坐标系也随之移动和改变方向。比如告诉你“向前走一步”,则是向你的物体坐标系发指令。“前”、“后”、“左”、“右”这样的概念只有物体坐标系才有意义。“向左转”是物体坐标系,“向东”则是世界坐标系。有时物体坐标系也称作模型坐标系,模型顶点的坐标都是在模型坐标系中描述的。

那么物体坐标系也能像指定方向一样指定位置

2.物体坐标系常见问题

周围有互相作用的物体吗?(我需要攻击他吗)
哪个方向?在我前面吗?我左边一点?(我应该是射击它还是逃跑)

第四节:摄像机坐标系

1.摄像机坐标系的概念

摄像机坐标系是和观察者密切相关的坐标系。摄像机坐标系和屏幕坐标系相似,差别在于摄像机坐标系处于3D空间中,而屏幕坐标系是在2D平面里,可以理解摄像机坐标的获取视景展示在屏幕上。摄像机坐标系可以理解为特殊的“物体坐标系”,该“物体”坐标系就定义在摄像机的屏幕可视区域, 摄像机坐标系中,摄像机在原点,x轴向右,z轴向前(摄像机的拍摄方向),y轴向上(不是世界的上方,而是摄像机本身的上方,如果放反了,拍出来的就是反的效果)

关于摄像机坐标系的轴向约定可能不同。许多图形学书中习惯用右手坐标系,z轴向外,即从屏幕指向读者。2D屏幕上显示的内容就是3D摄像机坐标系通过投影转换呈现的。

这里写图片描述

2.摄像机坐标系常见的问题

.3D空间中的给定点在摄像机前方吗?

.3D空间中给定点是在屏幕上,还是超出了摄像机平截锥体的左右上下边界?(平截锥体就是摄像机能观察到的金字塔区域)

.某个物体是否在屏幕上?它的部分在,或全部不在?

.两个物体,谁在前面?(该问题称作可见性检测)

第五节:惯性坐标系

1.惯性坐标系的概念

惯性坐标系意思是在世界坐标系到物体坐标系的"半途“。为了简化世界坐标系到物体坐标系之间的转换,才有了惯性坐标系。惯性坐标系的原点和物体坐标系的原点重合,但惯性坐标系的轴平行于世界坐标系的轴。引进惯性坐标系的原因是:从物体坐标系转换到惯性坐标系只需旋转,从惯性坐标系转换到世界坐标系只需要平移。

这里写图片描述

图中,物体坐标系(Object Space)的坐标点要转换到世界坐标系(World Space)中,就需要实用惯性坐标系(Inertial Space)作为过渡。

**

第六节 嵌套坐标系

**
**为了在世界坐标系中计算相邻物体之间的关系,需要实时了解任意一点上物体的位置和方向。更加准确地说,需要知道物体坐标系的轴在世界坐标系中的位置和方向。因为物体坐标系在世界坐标系中运动,很自然地会想到将世界坐标系看做”父"空间而

将物体坐标系看做"子"空间.也能很自然地想到将物体打散成子块,独立的控制他们。我们称子坐标系嵌入父坐标系中,这种坐标系的父子关系定义了一种层次的,或树状的坐标系。世界坐标系是这颗树的根。嵌套式坐标系树能在虚拟世界的生命周期中动态更新。层次化的嵌套坐标系是动态的,能够以最方便于表达重要信息的方式进行组织。**

3D虚拟世界中每个物体都有自己的坐标系———-自己的原点和坐标轴。每个模型都有自己的原点和坐标轴,模型的子物体就是在这个嵌套坐标系中。

物体坐标系到世界坐标系的转换:
这里写图片描述

1、旋转物体坐标系到惯性坐标系。将物体坐标轴旋转到与惯性坐标系重合。

这里写图片描述

2、将惯性坐标系原点平移至世界坐标系。

这里写图片描述

第七节 描述坐标系

坐标系的描述是很直接的,所要做的一切就是描述原点的位置。当然,采用的是其在父坐标系中的位置,而不是在其本身的子坐标系中的位置。因为根据定义,原点在子坐标系中总是(0,0,0);

第八节 坐标系的转换

各个坐标系之间是可以相互转换的。各个坐标系不外乎就是原点和轴指向不同,我们可以通过平移到相同原点再旋转得到相同坐标系;也可以通过先旋转到相同轴向再平移到相同原点。

【图文】3D数学基础前3章课件_百度文库 https://wenku.baidu.com/view/be5b11606edb6f1aff001fde.html

猜你喜欢

转载自blog.csdn.net/qq_34536551/article/details/71108313