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