《3D数学基础:图形与游戏开发》
前言
白玉无冰决定开一个新坑。再次重读《3D数学基础:图形与游戏开发》(第一版)
。
结合Cocos Creator
引擎及其他相关书籍,整理并记录一些笔记。
![cf8bada493d2d318bbdd79e39161c114.png](https://img-blog.csdnimg.cn/img_convert/cf8bada493d2d318bbdd79e39161c114.png)
开始
坐标系有许多种,本文主要围绕笛卡儿坐标系(Cartesian Coordinate System)展开。
![af0aac433c8d526a8b4e09bf3d069056.png](https://img-blog.csdnimg.cn/img_convert/af0aac433c8d526a8b4e09bf3d069056.png)
计算机图形学第一准则:近似原则。如果它看上去是对的,它就是对的。
左手坐标系与右手坐标系
3D坐标系中存在两种坐标系:左手坐标系和右手坐标系。
伸出你的双手,让拇指(x)、食指(y)和中指(z)相互垂直,就构成了相应的坐标系。
![3b2f08b700a53cb655b28bfeeb0c778c.png](https://img-blog.csdnimg.cn/img_convert/3b2f08b700a53cb655b28bfeeb0c778c.png)
🎈 OpenGL中的坐标系大体是右手坐标系,而Direct3D中大体是左手坐标系。
🥥 Cocos Creator 3.0 的世界坐标系采用的是笛卡尔右手坐标系,默认 x 向右,y 向上,z 向外,同时使用 -z 轴为正前方朝向。
![9f754ed8e477942e14e076ddbec9c801.png](https://img-blog.csdnimg.cn/img_convert/9f754ed8e477942e14e076ddbec9c801.png)
其中旋转也遵循对应左右手法则,伸出双手,做一个点赞👍 的手势,拇指指向朝向,四指握着的方向为正。
![afc6c72377328cdb15309dae3bd653c3.png](https://img-blog.csdnimg.cn/img_convert/afc6c72377328cdb15309dae3bd653c3.png)
🥥 Cocos Creator 3.0 中的旋转(Rotation)遵守右手法则,从转向轴往原点看,当属性值为 正 时,节点 逆时针 旋转。当属性值为 负 时,节点 顺时针 旋转。
![3f800279b4b45e98315e60a4bfdab127.gif](https://img-blog.csdnimg.cn/img_convert/3f800279b4b45e98315e60a4bfdab127.gif)
⚠️ 注意:节点上的 rotation 属性是一个四元数,表示的是绕任意轴旋转的角度。与 属性检查器 中的 Rotation 所对应的属性是欧拉角属性 EulerAngles。这两个属性可以根据需求分别使用,