平移变换矩阵 T 为:

$$\begin{bmatrix}\1 & 0 & 0 & x_0\0 & 1 & 0 & y_0\0 & 0 & 1 & z_0\0 & 0 & 0 & 1\\end{bmatrix}$$

其中 (x_0, y_0, z_0) 为平移向量。

尺度变换矩阵 S 为:

$$\begin{bmatrix}\s_x & 0 & 0 & 0\0 & s_y & 0 & 0\0 & 0 & s_z & 0\0 & 0 & 0 & 1\\end{bmatrix}$$

其中 s_x, s_y, s_z 为三个方向上的尺度因子。

对空间点 P = [1, 2, 3]^T 进行变换,先进行平移变换后尺度变换:

$$\begin{aligned}\P'&=S(TP)\&=S\begin{bmatrix}\1 & 0 & 0 & x_0\0 & 1 & 0 & y_0\0 & 0 & 1 & z_0\0 & 0 & 0 & 1\\end{bmatrix}\begin{bmatrix}\1\2\3\1\\end{bmatrix}\&=S\begin{bmatrix}\1+x_0\2+y_0\3+z_0\1\\end{bmatrix}\&=\begin{bmatrix}\s_x(1+x_0)\s_y(2+y_0)\s_z(3+z_0)\1\\end{bmatrix}\\end{aligned}$$

再进行尺度变换后平移变换:

$$\begin{aligned}\P''&=T(SP)\&=\begin{bmatrix}\1 & 0 & 0 & x_0\0 & 1 & 0 & y_0\0 & 0 & 1 & z_0\0 & 0 & 0 & 1\\end{bmatrix}\begin{bmatrix}\s_x & 0 & 0 & 0\0 & s_y & 0 & 0\0 & 0 & s_z & 0\0 & 0 & 0 & 1\\end{bmatrix}\begin{bmatrix}\1\2\3\1\\end{bmatrix}\&=\begin{bmatrix}\s_x & 0 & 0 & s_x x_0\0 & s_y & 0 & s_y y_0\0 & 0 & s_z & s_z z_0\0 & 0 & 0 & 1\\end{bmatrix}\begin{bmatrix}\1\2\3\1\\end{bmatrix}\&=\begin{bmatrix}\s_x+s_x x_0\s_y+s_y y_0\s_z+s_z z_0\1\\end{bmatrix}\\end{aligned}$$

可以发现,两种方式所得到的结果并不相同。按照第一种方式,先平移再尺度变换,相当于将空间点沿着平移向量进行平移,再按照不同的比例对空间点进行缩放;按照第二种方式,先尺度变换再平移变换,相当于在空间点的原始位置上按照不同的比例对空间点进行缩放,然后再将缩放后的点沿着平移向量进行平移。因此,两种方式所得到的结果是不同的。

在实际应用中,根据不同的需求和场景,可以选择不同的顺序进行变换。如果需要对空间点先进行平移再进行缩放,就应该选择第一种方式;如果需要先对空间点进行缩放再进行平移,就应该选择第二种方式。

空间点变换:平移与尺度变换顺序的影响

原文地址: https://www.cveoy.top/t/topic/owEz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录