Skip to content

放缩

根据比例因子k控制对物体的缩放,如果每个方向上的缩放因子相同,则为均匀缩放,反之则为非均匀缩放。

均匀缩放时,在二维坐标系中,面积增大k2;在三维坐标系中,体积增大k3

  • 缩放因子k < 0时为镜像
  • 缩放因子k = 0时为正交投影
  • 缩放因子k > 0时为普通缩放,而且0 < k < 1时为缩小,k > 1时为放大,本文主要讨论k > 0的情况。

2D

最简单的缩放是沿着坐标轴进行放大、缩小,假设x轴方向的缩放因子为kx,y轴方向的缩放因子为ky

M=[pq]=[kx00ky]

任意轴缩放

给定向量v沿着单位向量n放缩,放缩因子为k,使用n、v、k表示缩放后的向量v'

img_1.png

将向量v拆分为沿向量n的水平分量v和垂直分量v,将向量v'也拆分为沿向量n的水平分量v'和垂直分量v'

由于v'垂直与缩放轴,所以它不受缩放因子的影响。

根据以上信息可知:

v=v+v=v+v=k(v·n)n+vv=k(v·n)n+v(v·n)n=(k1)(v·n)n+v

带入对应坐标轴的基向量可知

x轴方向

p=[10]p=(k1)(p·n)n+p=(k1)([10]·[nxny])[nxny]+[10]=[1+(k1)nx2(k1)nxny]

y轴方向

q=[01]q=[(k1)nxny1+(k1)ny2]

得出转换矩阵为:

M(n,k)=[pq]=[1+(k1)nx2(k1)nxny(k1)nxny1+(k1)ny2]

3D

在3D中,如果也是沿着坐标轴缩放,那么转换矩阵为:

M=[pqr]=[kx000ky000kz]

任意平面缩放

同样的将各个坐标轴上的基向量带入上述表达式中,可知3D下的转换矩阵为:

M(n,k)=[pqr]=[1+(k1)nx2(k1)nxny(k1)nxnz(k1)nxny1+(k1)ny2(k1)nynz(k1)nxnz(k1)nzny1+(k1)nz2]