1D数学
两千年前,人们为了方便‘’数羊“而发明了自然数。“一头羊”的概念很容易理解,接下来“两头羊”和‘’三头羊“,依次类推。人们很快意思到这样数下去工作量巨大,于是就在某一点放弃计数了,用“很多羊”代替了。不同的文明在不同的计数点放弃计数。随着文明的发展,有些人就开始去思考“数学”概念,此时数学就诞生了。
轴
在数东西的时候,人们很自然的习惯就是把物品横向摆放进行计数,这就导致了数轴概念的产生。
整数
当你劝别人买一头羊,而你手里没有。你可以先谈成这笔买卖,然后再去想办法搞到一头羊。当这笔买卖从开始谈到谈成过程中,其实你的状态是从“0头羊”变成了“-1头羊”。这种情况就导致了整数的产生——自然数和它们相反数(负数)组成。
分数和小数
贫穷致使一部分人只卖得起半只羊,甚至四分之一只羊。于是产生了分数——由一个整数除以另一个整数行为,例如2/3, 1/24。数学家称之为有理数,这个填充上了数轴中,整数与整数之间的空白。为了方便,发明了小数点表示法,用“3.1415”来代替冗长的31415/10000。
无理数和实数
人们后来发现,有些数无法用有理数标示,最典型的就是圆的周长除以圆的直径,这个大家都知道,就是π,这种数字小数点后需要无穷多位,叫做无理数。我们把‘’有理数‘’+‘’无理数‘’统称为‘’实数‘’。
2D数学
这个比较直观就是上学时学习的xy坐标,它有以下两点定义:
- 每个2D坐标系都有一个特殊的点,称作原点,也是坐标系的中心点。
- 每个2D坐标系都有两条过原点的直线向两边无限延伸,称作“轴”。两个轴互相垂直。
这两点几乎是每个人都知道的,但是当我们进入3D坐标系后,会发现2D坐标系还有很多特性。
2D到3D
对2D坐标系已经很了解了,来思考一下3D空间。初看起来,3D空间只是比2D空间多一个轴,也就是多了50%复杂度,而事实并非如此。3D中有许多2D没有的概念。当然,也有许多2D概念可以直接引入到3D中。经常在2D中推到,然后扩展到3D中。
第三个维度,第三个轴
我们需要3个轴来表示三维坐标系,前两个轴延续2D坐标系的x轴和y轴,第3个轴叫做z轴。
2D平面中我们指定x轴向右为正、y轴向上为正的坐标系为表针形式,但是3D中并没有这个标准。不同的左右、不同的研究领域使用不同的标准。
左手坐标系和右手坐标系
2D坐标系都是“等价”的,这句话的意思你可以通过旋转或者翻转操作,总能把x轴指向右,y轴指向上。
例如:
如图中的坐标系,x向左,y向下。我们只需要旋转180°就可以恢复到标准状态
再比如:如图
以y轴为翻转轴,翻转180°可以恢复到标准状态
但是在3D中就不是这个“等价”状态了。3D中有两种完全不同的3D坐标系:左手坐标系和右手坐标系,如果同属于左手坐标系或者右手坐标系,可以通过旋转来重合,否则不可以。
当一个人站在x轴的正方向看向原点,然后以x轴顺时针旋转yz平面90˚,y轴正方向到达z轴正方向位置,z轴到达y轴负方向位置。
右手坐标系正好相反。
左右手坐标系互相转换
最简单的方法是只翻转一个轴的符号,就可以实现左右手坐标系互相装换。如果同时翻转两个轴,结果和不翻转是一样的。
多坐标系
世界坐标系
是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。从另一个方面说,能够用世界坐标系描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。
物体坐标系
是和特定物体相关联的坐标系。每个物体都有它们独立的坐标系。当物体移动或改变方向时,和该物体相关联的坐标系将随之移动或改变方向。
摄像机坐标系
与观察者密切相关的坐标系。摄像机坐标系中,x轴向左,y轴向上(不是世界坐标系中的上,而是摄像机本身的上方),z轴方向不确定,有的指向物体,有的是物体指向摄像机,就是一个符号问题。z轴方向这个影响不大,因为摄像机坐标系存在的目的是要与屏幕坐标系互相转换,也就是3D转换2D。
惯性坐标系
为了简化世界坐标系到物体坐标系的转换,人们引入了惯性坐标系这个概念。惯性坐标系的原点与物体坐标系原点重合,但坐标系的轴平行于时间坐标系的轴。
坐标系转换
大概流程:
物体坐标系-世界坐标系-观察者坐标系-剪裁坐标-规范化设备坐标-屏幕坐标
其他概念
视口
通过屏幕能看到的窗口,类似于地图APP,用户通过手机屏幕看到的地图信息,可通过放大缩小地图,来调整视口的可视区域。或者理解成srollview的可视区域。
投影方式
本文中部分内容取至《3D数学基础》书籍