其他分享
首页 > 其他分享> > 3D数学---矩阵的几何意义:变换

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