📜  计算机图形学– 3D缩放转换

📅  最后修改于: 2021-08-25 17:46:10             🧑  作者: Mango

先决条件:计算机图形学– 3D翻译转换

缩放转换:
执行该操作以调整3D对象的大小,即可以通过S x ,S y ,S z缩放因子在x,y,z方向中的任意方向上缩放(更改)对象的尺寸。

标度转换条件的矩阵表示:

\large S[x, y, z]= \left [ \begin{matrix} S_x &0&0& 0\\ 0 & S_y&0&0&\\ 0 & 0&S_z&0\\ 0&0&0&1\\ \end{matrix}\right]\\ where\, S_x, \, S_y, \, S_z\, \text{are}\, \text{the}\, \text{Scaling\, Factors}.\\

在固定点上执行缩放转换时,会发生以下类型的序列–

  • 不动点将转换为原点。
  • 缩放对象。
  • 不动点将平移到其原始位置。

假设3D空间中的一个点是P(x,y,z),我们要对其应用缩放变换操作,并给出缩放因子[S x ,S y ,S z ],因此,该点之后的新位置应用扩展操作将是–

\textbf{P'[x, y, z, 1]=P[x, y, z, 1].S[x, y, z]}注意:如果使用比例因子(S x ,S y ,S z ),则在这种情况下,将在所有X,Y,Z方向上均等地放大3D对象。

问题 :
考虑上面的问题,其中给多维数据集“ OABCDEFG” O(0,0,0,),A(0,4,0),B(0,4,4),C(4,4,0),D (4,4,4),E(4,0,0),F(0,0,4),G(4,0,4),我们得到比例因子S x ,S y ,S z 。对多维数据集执行缩放操作。

解决方案 :
我们被要求对下面的图3D对象执行缩放转换

图。1

现在,应用Matrix Scaling变换条件,我们得到–

\large O'[x, y, z, 1]= [0\, 0\, 0\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[0\, 0\, 0\, 1]\\\\ \hspace{4cm}A'[x, y, z, 1]= [0\, 4\, 0\, 1]\left [\begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[0\, 12\, 0\, 1]\\\\ \hspace{4cm}B'[x, y, z, 1]= [0\, 4\, 4\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[0\, 12\, 8\, 1]\\\\ \hspace{4cm}C'[x, y, z, 1]= [4\, 4\, 0\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[8\, 12\, 0\, 1]\\\\ \hspace{4cm}D'[x, y, z, 1]= [4\, 4\, 4\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[8\, 12\, 8\, 1]\\\\ \hspace{4cm}E'[x, y, z, 1]= [4\, 0\, 0\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[8\, 0\, 0\, 1]\\\\ \hspace{4cm}F'[x, y, z, 1]= [0\, 0\, 4\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[0\, 0\, 8\, 1]\\\\ \hspace{4cm}G'[x, y, z, 1]= [4\, 0\, 4\, 1]\left [ \begin{matrix} 2&0&0&0\\ 0&3&0&0\\ 0&0&2&0\\ 0&0&0&1\\ \end{matrix}\right]=[8\, 0\, 8\, 1]\\\\

成功执行缩放转换后,图1如下图2所示–

图2