也就是在原有维度的情况下添加了第三个坐标维度w,在原先是2d点的情况变为
(
x
,
y
,
1
)
⊤
(\mathbf{x}, \mathbf{y}, 1)^{\top}
(x,y,1)⊤
原先是2d向量的情况现在变为
(
x
,
y
,
0
)
⊤
(\mathbf{x}, \mathbf{y}, 0)^{\top}
(x,y,0)⊤
于是我们可以构建出一个矩阵,从而达成只乘一个矩阵就可完成平移变换
(
x
′
y
′
w
′
)
=
(
1
0
t
x
0
1
t
y
0
0
1
)
⋅
(
x
y
1
)
=
(
x
+
t
x
y
+
t
y
1
)
\left(\begin{array}{c} x^{\prime} \\ y^{\prime} \\ w^{\prime} \end{array}\right)=\left(\begin{array}{ccc} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{array}\right) \cdot\left(\begin{array}{l} x \\ y \\ 1 \end{array}\right)=\left(\begin{array}{c} x+t_x \\ y+t_y \\ 1 \end{array}\right)
x′y′w′=100010txty1⋅xy1=x+txy+ty1
即
(
x
′
y
′
)
=
(
a
b
c
d
)
⋅
(
x
y
)
+
(
t
x
t
y
)
\binom{x^{\prime}}{y^{\prime}}=\left(\begin{array}{ll} a & b \\ c & d \end{array}\right) \cdot\binom{x}{y}+\binom{t_x}{t_y}
(y′x′)=(acbd)⋅(yx)+(tytx)可转换为
(
x
′
y
′
1
)
=
(
a
b
t
x
c
d
t
y
0
0
1
)
⋅
(
x
y
1
)
\left(\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right)=\left(\begin{array}{llc} a & b & t_x \\ c & d & t_y \\ 0 & 0 & 1 \end{array}\right) \cdot\left(\begin{array}{l} x \\ y \\ 1 \end{array}\right)
x′y′1=ac0bd0txty1⋅xy1
也就是现在处理任何一个变换,都可以仅乘一个矩阵就可以完成变换了
而引入齐次坐标的上述所有变换矩阵,都可以用以下矩阵表示
缩放变换:
S
(
s
x
,
s
y
)
=
(
s
x
0
0
0
s
y
0
0
0
1
)
\mathbf{S}\left(s_x, s_y\right)=\left(\begin{array}{ccc} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{array}\right)
S(sx,sy)=sx000sy0001