本文中的图片,公式等来自 GMAES101, 在此向作者表达真挚的感谢!
一、为什么要引入齐次坐标?
平移变换不能用一个矩阵来表示,它不是线性变换。在缩放或者旋转等变换操作后, 需要单独用一个向量来表示, 这样表示起来就不方便了。
根据以上约定,会有以下性质:
① PointerA + PointerB = PointerC; // AB的中点
② PointerA - PointerB = Vector; //向量AB
③ VecterA + VectorB = VecterC;
④ Pointer + Vector = Pointer; // 点沿着向量的向量平移
应用:一系列复杂的变换都可以分解为:缩放、旋转、平移的组合
// 绕哪个轴旋转,对应轴的坐标保持不变
X x Y = Z; Y x Z = X; Z x Y = X;
// x叉乘z是 -z ; 变换操作是可逆,并且为正交矩阵,所以绕y轴旋转的矩阵应该是 x叉乘z矩阵的转置