![计算机游戏基础教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/453/773453/b_773453.jpg)
第2章 游戏中的数学和物理基础知识
2.1 笛卡儿坐标系
2.1.1 2D笛卡儿坐标系
2D笛卡儿坐标系很像是由矩形构成的一个虚拟世界。如果你曾经注视过房屋的天花板,用过街区地图,看过足球比赛,下过象棋,那么你已经在笛卡儿坐标系中了。如图2-1所示,假想一个名为笛卡儿的虚拟城市,该城的设计者们精心设计了街道的布局,中心街道经过城镇中心贯穿东西,其他东西走向的街道是根据它与中心街道的相对位置来命名的,如北3街和南1街。
![](https://epubservercos.yuewen.com/7571FF/3590603204495201/epubprivate/OEBPS/Images/figure_0031_0001.jpg?sign=1738883350-DMHfN0HVBFOjMAeX7V7liuTtaj58kfwr-0-5a555b3acf6cc3f4cbe70798dff9d1cd)
图2-1 笛卡儿虚拟城市街道图
坐标系是一个精确定位点的框架。2D笛卡儿坐标系有以下两点定义:
① 每个2D笛卡儿坐标系都有一个特殊的点,称做原点(Origin),它是坐标系的中心。原点相当于笛卡儿城的中心。
② 每个2D笛卡儿坐标系都有两条过原点的直线向两边无限延伸,称做轴(Axis)。两个轴互相垂直,这相当于笛卡儿城的中心街道和分界街道。
如图2-2所示,为了在笛卡儿坐标系中定位点,人们引入了笛卡儿坐标的概念。在2D平面中,两个数(x, y)就可以定位一个点。和笛卡儿城街道名的意思类似,坐标的每个分量都表明了该点与原点之间的距离和方位。确切地说,每个分量都是到相应坐标轴的有符号距离。在2D笛卡儿坐标系中,X轴和Y轴的方向可以是任意的,因为这些不同X轴、Y轴方向所构成的坐标系可以通过旋转获得一致,也可以说这些坐标轴是等价的,因此,在2D笛卡儿坐标系中,没有限定X轴、Y轴的方向,但这个概念在3D的笛卡儿坐标系中就不成立。
![](https://epubservercos.yuewen.com/7571FF/3590603204495201/epubprivate/OEBPS/Images/figure_0031_0002.jpg?sign=1738883350-OZkOrVMrINVGyMe7nJrh1on4bRWhDtUI-0-b28a29749fbbe89374d08751efc41c56)
图2-2 2D笛卡儿坐标
2.1.2 3D笛卡儿坐标系
通过2D笛卡儿坐标系,可以描述平面的空间,但现实世界中的3D空间则难以描述,因此需要从2D坐标系扩展到3D坐标系。
如图2-3所示,需要3个轴来表示三维坐标系,前两个轴称为X轴和Y轴,这和2D坐标系一样,第三个轴称为Z轴,一般情况下,3个轴互相垂直,也就是每个轴都垂直于其他两个轴。在3D平面中,三个数(x, y, z)就可以定位一个点。
![](https://epubservercos.yuewen.com/7571FF/3590603204495201/epubprivate/OEBPS/Images/figure_0032_0001.jpg?sign=1738883350-8m7WGQRs2oA80FN5kUraVBsUBjLrpFWE-0-d34cb583bd8445b55448efdaa932fb36)
图2-3 3D笛卡儿坐标
2.1.3 左右手坐标系
在现实世界中,一般来说,如图2-4所示,头顶为Y轴正轴方向,右边为X轴正轴方向,前方为Z轴正轴方向。
![](https://epubservercos.yuewen.com/7571FF/3590603204495201/epubprivate/OEBPS/Images/figure_0032_0002.jpg?sign=1738883350-iFDlFkJAYgacwdMHmP3b7nuC7RGwhGNI-0-d170a29abda5754180b03c8d2a653b0a)
图2-4 实现世界中的3D坐标方向
但在游戏世界中,一般可以有两种不同的坐标系统来表示游戏世界中的坐标,即左手坐标系(如图2-5所示)和右手坐标系(如图2-6所示)。那如何判断一个坐标系属于左手坐标系还是右手坐标系呢?伸出左手,如图2-5所示,让拇指、食指和中指两两垂直,其中拇指代表Y轴,食指代表Z轴,中指代表X轴,这个坐标系统就是左手坐标系统,任何一个系统,只要能通过旋转变成这个系统,则该系统为左手坐标系统。
![](https://epubservercos.yuewen.com/7571FF/3590603204495201/epubprivate/OEBPS/Images/figure_0032_0003.jpg?sign=1738883350-XjDVW6ZhTLB79icNq8wlCDlXo1REcfDT-0-48ae812726dad81e69737234b49e2268)
图2-5 左手坐标系
![](https://epubservercos.yuewen.com/7571FF/3590603204495201/epubprivate/OEBPS/Images/figure_0032_0004.jpg?sign=1738883350-bjGZpxD1rHDWtMHWM5IHAZNzpOK4soUq-0-1165e95e569cc341d44393b6b2d3ff4c)
图2-6 右手坐标系
按同样的方法,伸出右手,如图2-6所示,这个坐标系统就是右手坐标系统,任何一个系统,只要能通过旋转变成这个系统,则该系统为右手坐标系统。
任何一个3D笛卡儿坐标系统,不是左手坐标系统就是右手坐标系统。