- 可以保留矢量加和标量乘的变换即
- 线性变换包括缩放、旋转、错切、镜像、正交投影等变换
- 平移变换满足标量乘法,但不满足标量加法不是线性变换,不能用
- 合并线性变换和平移变换的变换 4×4矩阵表示把三维矢量扩展到四维空间,就是齐次坐标空间(Homogeneous Space)
- 三维矢量转换为四维坐标即齐次坐标(四维齐次坐標)
- 对于一个点从三维坐标转换为齐次坐标是把w分量设为1,对于方向向量把 4×4矩阵对一个点进行变换时,线性变换和平移变换都会作鼡于该点但对一个方向矢量进行变换时,平移变换会被忽略
- 表示纯平移、纯旋转和纯缩放的变换矩阵叫做基础变换矩阵
- 可以把一个基础變换矩阵分解为4个部分:
- M3×3?用于表示旋转和缩放t3×1?用于表示平移
-
0 0 0 0 0 0 0 0 0
?????1000?0100?0010?tx?ty?tz?1???????????xyz1??????=?????x+tx?y+ty?z+tz?1??????
- 对方向矢量进行平移变换
- 平移矩阵的逆矩阵就是反向平移得到的矩阵
?????kx?000?0ky?00?00kz?0?0001???????????xyz1??????=?????kx?xky?ykz?z1??????
-
kx?=ky?=kz?,这样的缩放称为统一缩放,否则称为非统一缩放
- 缩放矩阵的逆矩阵是使用原缩放系数的倒数来对点或方向矢量进行缩放
- 缩放矩阵一般不是正交矩阵
-
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
- 一般先缩放再旋转,最后平移 zyx)以及它们对应的旋转角度(θx?,θy?,θz?)有两种坐标系可以选择,把它们的旋转顺序颠倒一下得到的结果就一样
(θx?,θy?,θz?)这样的旋转角度时需定义一个旋转顺序,在Unity中这个旋转顺序是zxy(第一种情况),即复合旋转变換矩阵为θx?,即进行一次旋转时不一起旋转当前坐标系 θx?,即茬旋转时,把坐标系一起转动