Direct3D使用所谓的左手坐标系(left-handed coordinate system)。假如你把左手手指指向x轴正方向,然后朝y轴正方向弯曲四指,大拇指就会指向z轴正方向。图1.5展示了左手坐标系和右手坐标系之间的区别。
左边是左手坐标系,z轴正方向向页面内部延伸。右边是右手坐标系,z轴正方向向页面外部延伸。
观察右手坐标系。假如你把右手手指指向x轴正方向,然后朝y轴正方向弯曲四指,大拇指就会指向z轴正方向。
齐次坐标
因为向量只表示方向和长度,与位置无关,所以平移一个向量是无意义的,换句话说,平移后的向量是不变的。平移只能作用在点上(即,位置向量)。齐次坐标提供了一个便捷的表示方法用来统一处理点和向量。在齐次坐标中,我们使用4个元素,我们通过它的第4个坐标分量w来决定所描述的是一个点还是一个向量。确切地说,我们写为:
1.(x,y,z,0)用于向量
2.(x,y,z,1)用于点
我们将会看到,把w设为1是为了让点的平移操作得到正确执行,把w设为0是为了防止向量在变换过程中发生平移。(我们不希望平移向量的坐标,因为向量可以改变的只有方向和大小——平移对向量来说没有意义。)