左手系与右手系

OpenGL与D3D一个用右手系,一个用左手系,有时候真让人糊涂。稍微整理一下思路吧。

 

在笛卡尔空间中,是没有所谓左手系与右手系之分的。之所以有了左手与右手的原因是因为在我们使用这个笛卡尔空间时,一般都会用一个三元组来表示一个点(a , b , c),而a , b , c分别是在笛卡尔空间上面的三个互相垂直的方向上的偏移位置。设这三个方向分别为(A,B,C),或AXB=C,说明用的是右手坐标系,若AXB=-C,说明用的是左手坐标系。

 

所以基本上来说,从叉乘的代数意义上来看,叉乘的结果应该是右手系的结果,这和中学时学的右手准则是相符的。

而D3D搞出来的左手坐标系,说白了就是把最后一个方向取个了反而已。若把我们第一个方向A取为右,第二个B取为上,在右手坐标系下,第三个C方向应该朝外,这样子刚好符合AXB=C

如果非要把第三个C的正方向取成向里,那AXB得出来的那个值其实还是向外的,由于C的正方向是向里的,所以向外的那个矢量就是-C了。

你可能感兴趣的:(图形学)