首先,我们要明确,一个变换( 也可以理解为一个对向量进行处理并返回处理后的向量的函数 )能够被称为线形变换,需要满足的条件是:
L( cU + V ) = cL( U ) + L( V ) ----- 为什么是这样恐怕要查下线形代数的相关资料了
其中cU + V叫做两个向量的线形组合, 其中L()就是所谓的线形变换.
旋转变换:M
在DX中,U = VM, U,V是行向量.
反射变换:R
U = VR
可以自己验证这两个变换是否满足条件.
旋转与反射变换都是正交矩阵,也就是说MT*M = M*MT = E,而又已知(M的逆)*M = E,所以MT = (M的逆 ),也就是说,如果旋转阵M让向量旋转了x度,那么MT就让点旋转了-x度
如果R可以得到向量关于平面N*X = 0的反射向量,那么RT则可以得到向量的本身.
在游戏编程中,旋转的用处自不必说,而反射则可以得到类似镜子的效果.
除了旋转与反射,还有很多变换属于线形变换,下次再做分析.