八叶一刀·无仞剑

万物流转,无中生有,有归于无

导航

坐标系转换

Posted on 2019-12-20 17:51  闪之剑圣  阅读(470)  评论(0编辑  收藏  举报

在三维空间里,我们常常用一个四维的向量来代表一个顶点,即 v = (x,y,z,1)。
假设我们已知世界坐标系下的顶点p,又有世界坐标系下两两正交的三个轴u,v,w和新坐标轴的原点e。那么我们可以通过以下公式将p转换为新坐标系下的顶点:

其实,因为图中的矩阵符合正交矩阵(即矩阵中的向量两两正交),因此其实也就是:

反之,如果我们已知在某个坐标系下的顶点p和三个轴u,v,e,想把它转化为世界坐标系的话,也就可以反其道而行之:

以上公式仅适用于OpenGL下的右手坐标系的坐标形式;若是DirectX,则应当做一个转置后再用。