平移(translation)变换把点沿着给定方向移动固定距离,
p
′
=
p
+
d
p' = p + d
p′=p+d 如下图所示。
比如:将点
p
(
1
,
1
,
1
)
p (1, 1, 1)
p(1,1,1),往
X
X
X 轴正方向移动 1单位,往
Y
Y
Y 轴正方向移动 2 单位, 往
Z
Z
Z 轴正方向移动 3 单位,最终坐标是
p
′
(
2
,
3
,
4
)
p'(2, 3, 4)
p′(2,3,4) 数学上的运算为
p
(
1
,
1
,
1
)
+
d
(
1
,
2
,
3
)
=
p
′
(
2
,
3
,
4
)
p (1, 1, 1) + d (1, 2, 3) = p'(2, 3, 4)
p(1,1,1)+d(1,2,3)=p′(2,3,4)。 在图形学中,
p
+
d
p + d
p+d 可以表示为
p
p
p 乘于
d
d
d 对应的平移矩阵
T
T
T
所以
p
′
p'
p′ 的平移运算可表示为
即
二、旋转
旋转(rotation)变换指点绕着特定的一个点旋转固定角度。下面我们使用 2D 坐标讲解点
p
(
x
,
y
)
p(x, y)
p(x,y),绕特定的点
O
(
0
,
0
)
O(0, 0)
O(0,0) 原点旋转
θ
θ
θ 度,变换后的坐标表示为
p
′
(
x
′
,
y
′
)
p'(x', y')
p′(x′,y′)
将
p
p
p 与
p
′
p'
p′ 转换为极坐标表示则有
利用两角和的正弦和余弦公式可得
转换为矩阵像形式
在 3D 中绕
Z
Z
Z 轴旋转的所有点
z
z
z 值不变,等价于上面 2D 绕原点的旋转,所以 3D 坐标的旋转可以表示为
在图形学中 绕
Z
Z
Z 轴旋转的变换矩阵为
最终
p
′
p'
p′ 的旋转可表示为
同理可得绕
X
X
X 轴旋转的变换矩阵为
R
x
R_{x}
Rx,绕
Y
Y
Y 轴旋转的变换矩阵为
R
y
R_{y}
Ry。注:这里使用右手坐标系
三、缩放
缩放(scaling)变换指沿着指定不动点(变换后该点位置保持不变,这里使用原点),对象沿着指定方向(坐标轴)伸长或缩短。缩放后的点
p
′
(
x
′
,
y
′
,
z
′
)
p'(x', y', z')
p′(x′,y′,z′) 的坐标可表示为