3D数学---矩阵的几何意义:变换
作者:互联网
什么是变换
在三位渲染中,矩阵是可视化的,这个可视化的结果就是变换。 具体一下,变换指的是我们把一些数据,如点,方向矢量甚至是颜色等, 通过某种方式进行转换的过程。
线性变换
线性变换指的是那些可以保留矢量加和标量乘的变换。用数学公式来表示这两个条件就是:f(x) + f(y) = f(x+y) , kf(x) = f(kx)
例:f(x)=2x可以表示一个大小为2的统一缩放,即经过变换后矢量x的模将被放大两倍。可以发现,f(x) = 2x 满足上方两个条件
对于线性变换来说,如果我们要对一个三维的矢量进行变换,那么仅用3 X 3的矩阵就可以表示所有的线性变换。但不能表示平移变换。
仿射变换
仿射变换就是合并线性变换和平移变换的变换类型,仿射变换可以用一个4 X 4的矩阵来表示,为此,我们需要把矢量扩展到四维空间下,这就是齐次坐标空间。
常见的变换种类和它们的特性
齐次坐标
由于3x3的矩阵不能表示平移操作,我们就把其扩展到了4x4的矩阵。为此,我们还需要把原来的三维矢量转换成四维矢量,也就是我们说的齐次坐标。
齐次坐标是一个四维矢量。对于一个点,从三维坐标转换成齐次坐标是把其w分量设为1,而对于方向矢量来说,需要把其w分量设置为0。(这样的设置会导致,当对一个4x4的矩阵进行变换时,平移,旋转,缩放都会施加于该点。但是如果是用于变换一个方向矢量,平移的效果就会被忽略。)
分解基础变换矩阵
我们已经知道可以用一个4x4的矩阵来表示平移旋转和缩放。我们把表示纯平移,纯旋转,纯缩放的变换矩阵叫做基础变换矩阵。这些矩阵有一些共同点,我们可以把一个基础变换矩阵分解成4个部分
其中,左上角的矩阵M3x3用于表示旋转和缩放,t3x1用于表示平移,O1x3是零矩阵,即O1x3=[0 0 0],右下角的元素就是标量1
平移矩阵
我们可以使用矩阵乘法来表示对一个点进行平移变换:
不难看出这个矩阵有了平移的效果,在3D中可视化的效果是,把点(x,y,z)在空间中平移了(tx,ty,tz)个单位
平移变换不会对方向矢量产生任何影响:(矢量没有位置属性,可以位于空间任意一点)
缩放矩阵
标签:平移,线性变换,缩放,变换,矢量,矩阵,---,3D 来源: https://blog.csdn.net/qq_45611880/article/details/119696961