在OpenGL绘图过程中,需要通过坐标转换将模型坐标点的坐标转换为世界坐标。
如图,要把模型坐标系o'x'y'z'中的点A坐标转换为世界坐标oxyz的点坐标,,需要得到本地坐标到世界坐标的转换矩阵。如图,模型坐标系中原点在世界坐标系的坐标是(2,2,-2),点A在模型坐标中的坐标是(3,2,-1)。根据模型坐标各坐标轴的向量和得到齐次转换矩阵T(列向量):
其中第一列是X轴在世界坐标中的向量表示,第二列是Y轴向量,第三列是Z轴向量,第四列是原点在世界坐标中的坐标。将矩阵T与点A的坐标相乘:
得到的结果(3,4,1)就是点A在世界坐标中的坐标了。
如果有多层坐标,只需要每个坐标系的转换矩阵依次相乘,乘完剩下一个转换矩阵就可以了。