要学3D引擎,最基础当然就是数学知识,数学知识中最基础的自然就是坐标系了,没有坐标系,一切都是白谈,幸运的是,坐标系学起来非常简单,好了,让我们一起来回顾一下坐标系的概念吧。
1、2D坐标系
2D坐标系非常简单,从初中开始就接触到一个,那就是笛卡尔坐标系。笛卡尔坐标系以水平向右的一轴作为x轴,正方向为从左到右,以垂直向上的一轴作为y轴,正方向为从下到上。如下所示:
(备注:有些读者可能有使用Windows API的经验,使用Windows API绘制窗口的坐标系y轴的正方向是从上往下,也许是因为微软想标新立异,这里就不作讨论了。)
在笛卡尔坐标系中,由于两个坐标轴的关系,整个平面就分为四个区域,左上、右上、左下和右下。将这些区域取一个专业的名字叫做象限,四个区域就是四个象限,分别编号一~四象限。右上为第一象限,左上为第二象限,左下为第三象限,右下为第四象限。由此,我们可以判断出每个象限中点的正负号:
提示:很多图形算法都用这样的方法进行优化:先在第一象限中解决问题,然后通过对称性将解决方案反射到其他象限中(3D坐标系中为卦限)
2、3D坐标系
有了上面的基础,过渡到3D坐标系简直是轻而易举。3D的笛卡尔坐标系只是多了一个z轴