目录
1.图形变换数学基础
1.1 矢量计算、表示
1).矢量长度 :
∣
V
∣
2
=
(
x
1
x
1
+
⋯
+
z
1
z
1
)
1
/
2
{\left| {\rm{V}} \right|_2}{\rm{ = (}}{{\rm{x}}_1}{{\rm{x}}_1}{\rm{ + }} \cdots {\rm{ + }}{{\rm{z}}_1}{{\rm{z}}_1}{{\rm{)}}^{1/2}}
∣V∣2=(x1x1+⋯+z1z1)1/2
2).数乘矢量
α
V
=
(
α
x
1
,
α
y
1
,
α
z
1
)
\alpha {\rm{V = (}}\alpha {{\rm{x}}_1}{\rm{,}}\alpha {{\rm{y}}_1},\alpha {{\rm{z}}_1})
αV=(αx1,αy1,αz1)
3).矢量点积
V
1
⋅
V
2
=
∣
V
1
∣
∣
V
2
∣
c
o
s
θ
=
x
1
x
2
+
y
2
y
2
+
y
3
y
3
{V_1} \cdot {V_2} = \left| {{V_1}} \right|\left| {{V_2}} \right|cos\theta = {x_1}{x_2} + {y_2}{y_2} + {y_3}{y_3}
V1⋅V2=∣V1∣∣V2∣cosθ=x1x2+y2y2+y3y3
\qquad\qquad
(点积满足交换和分配律:
V
1
V
2
=
V
2
V
1
,
V
1
⋅
(
V
2
+
V
3
)
=
V
1
V
2
+
V
1
V
3
{V_1}{V_2} = {V_2}{V_1},{V_1} \cdot ({V_2} + {V_3}) = {V_1}{V_2} + {V_1}{V_3}
V1V2=V2V1,V1⋅(V2+V3)=V1V2+V1V3)
4).矢量叉积
V
1
⋅
V
2
=
∣
i
j
k
x
1
y
1
z
1
x
2
y
2
z
2
∣
=
(
y
1
z
2
−
z
1
y
2
,
z
1
x
2
−
x
1
z
2
,
x
1
y
2
−
y
1
x
2
)
{{V}_{1}}\cdot {{V}_{2}}=\left| \begin{matrix} i & j & k \\ {{x}_{1}} & {{y}_{1}} & {{z}_{1}} \\ {{x}_{2}} & {{y}_{2}} & {{z}_{2}} \\ \end{matrix} \right|=\left( {{y}_{1}}{{z}_{2}}-{{z}_{1}}{{y}_{2}},{{z}_{1}}{{x}_{2}}-{{x}_{1}}{{z}_{2}},{{x}_{1}}{{y}_{2}}-{{y}_{1}}{{x}_{2}} \right)
V1⋅V2=
ix1x2jy1y2kz1z2
=(y1z2−z1y2,z1x2−x1z2,x1y2−y1x2)
\qquad\qquad
(叉积满足反交换和分配律:
V
1
⋅
V
2
=
−
V
2
⋅
V
1
,
V
1
⋅
(
V
2
+
V
3
)
=
V
1
V
2
+
V
1
V
3
{{V}_{1}}\cdot {{V}_{2}}=-{{V}_{2}}\cdot {{V}_{1}},{V_1} \cdot ({V_2} + {V_3}) = {V_1}{V_2} + {V_1}{V_3}
V1⋅V2=−V2⋅V1,V1⋅(V2+V3)=V1V2+V1V3)
1.2 矩阵计算、表示
1).乘法
C
m
×
n
=
A
m
×
p
⋅
B
p
×
n
,
C
i
j
=
∑
k
=
1
P
a
i
k
⋅
b
k
j
{{C}_{m\times n}}={{A}_{m\times p}}\cdot {{B}_{p\times n}},{{C}_{ij}}=\sum\limits_{k=1}^{P}{{{a}_{ik}}\cdot {{b}_{kj}}}
Cm×n=Am×p⋅Bp×n,Cij=k=1∑Paik⋅bkj
2).矩阵转置性质
(
A
T
)
T
=
A
,
(
M
T
A
M
)
T
=
M
T
A
T
(
M
T
)
T
=
M
T
A
M
{{({{A}^{T}})}^{T}}=A,\\{{\left( {{M}^{T}}AM \right)}^{T}}={{M}^{T}}{{A}^{T}}{{\left( {{M}^{T}} \right)}^{T}}={{M}^{T}}AM
(AT)T=A,(MTAM)T=MTAT(MT)T=MTAM
\qquad
对称阵:
A
+
A
T
A+{{A}^{T}}
A+AT
\qquad
反对称阵:
A
−
A
T
A-{{A}^{T}}
A−AT
\qquad
证明:
(
A
−
A
T
)
T
=
(
−
A
T
)
T
+
A
T
=
−
A
+
A
T
=
−
(
A
−
A
T
)
{{\left( A-{{A}^{T}} \right)}^{T}}={{\left( -{{A}^{T}} \right)}^{T}}+{{A}^{T}}=-A+{{A}^{T}}=-\left( A-{{A}^{T}} \right)
(A−AT)T=(−AT)T+AT=−A+AT=−(A−AT)
3).矩阵的逆
\qquad
定义:A,B均为n阶方阵,I为n阶单位阵
\qquad
满足
A
B
=
B
A
=
I
,
则
B
=
A
−
1
AB=BA=I,则B={{A}^{-1}}
AB=BA=I,则B=A−1,称AB互逆。
4).Matrix operation properties
- 加法交换律和结合律
A + B = B + A A + ( B + C ) = ( A + B ) + C \begin{aligned} A+B & =B+A \\ A+(B+C) & =(A+B)+C \end{aligned} A+BA+(B+C)=B+A=(A+B)+C - 数乘矩阵,分配律和结合律 a ( A + B ) = a A + a B a ( A ⋅ B ) = ( a ⋅ A ) ⋅ B = A ⋅ a B \begin{array}{c} a(A+B)=a A+a B \\ a(A \cdot B)=(a \cdot A) \cdot B=A \cdot a B \end{array} a(A+B)=aA+aBa(A⋅B)=(a⋅A)⋅B=A⋅aB
- 矩阵乘法的结合律 A ( B ⋅ C ) = ( A ⋅ B ) C A(B \cdot C)=(A \cdot B) C A(B⋅C)=(A⋅B)C
- 矩阵乘法对加法的分配律 ( A + B ) C = A C + B C C ( A + B ) = C A + C B \begin{array}{l} (A+B) C=A C+B C \\ C(A+B)=C A+C B \end{array} (A+B)C=AC+BCC(A+B)=CA+CB
- 矩阵乘法不具备交换律 A ⋅ B ≠ B ⋅ A A \cdot B \neq B \cdot A A⋅B=B⋅A
1.3 线性方程组求解
{
a
11
x
1
+
a
12
x
2
+
⋯
+
a
1
n
x
n
=
b
1
a
21
x
1
+
a
22
x
2
+
⋯
+
a
2
n
x
n
=
b
2
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
a
n
1
x
1
+
a
n
2
x
2
+
⋯
+
a
n
n
x
n
=
b
n
\left\{\begin{array}{l} a_{11} x_1+a_{12} x_2+\cdots+a_{1 n} x_n=b_1 \\ a_{21} x_1+a_{22} x_2+\cdots+a_{2 n} x_n=b_2 \\ \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \cdots \\ a_{n 1} x_1+a_{n 2} x_2+\cdots+a_{n n} x_n=b_n \end{array}\right.
⎩
⎨
⎧a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯an1x1+an2x2+⋯+annxn=bn
表示AX=B,A为系数矩阵(方阵)。解为
X
=
A
−
1
B
X={{A}^{-1}}B
X=A−1B
解判定:
a)
r
(
A
)
=
r
(
[
A
∣
B
]
)
=
n
r(A)=r([A\left| B \right.])=n
r(A)=r([A∣B])=n,
\qquad
有唯一解
b)
r
(
A
)
=
r
(
[
A
∣
B
]
)
<
n
r(A)=r([A\left| B \right.])<n
r(A)=r([A∣B])<n,
\qquad
有无穷多解
c)
r
(
A
)
≠
r
(
[
A
∣
B
]
)
r(A)\ne r([A\left| B \right.])
r(A)=r([A∣B]),
\qquad
\qquad
无解
2. 二维几何变换
2.1 平移
-
(
x
,
y
)
向方向
(
d
x
,
d
y
)
平移后的坐标为
(
x
,
y
)
\left( x,y \right)向方向\left( dx,dy \right)平移后的坐标为\left( x,y \right)
(x,y)向方向(dx,dy)平移后的坐标为(x,y)
x ′ = x + d x y ′ = y + d y \begin{align} & x'=x+dx \\ & y'=y+dy \\ \end{align} x′=x+dxy′=y+dy - 矩阵表示
[ x ′ y ′ 1 ] = [ 1 0 d x 0 1 d y 0 0 1 ] [ x y 1 ] = T [ x y 1 ] \left[ \begin{matrix} x' \\ y' \\ 1 \\ \end{matrix} \right]=\left[ \begin{matrix} 1 & 0 & dx \\ 0 & 1 & dy \\ 0 & 0 & 1 \\ \end{matrix} \right]\left[ \begin{matrix} x \\ y \\ 1 \\ \end{matrix} \right]=T\left[ \begin{matrix} x \\ y \\ 1 \\ \end{matrix} \right] x′y′1 = 100010dxdy1 xy1 =T xy1
eg.translation (1,1).
2.2 旋转
-
绕原点旋转
[ x ′ y ′ 1 ] = [ x cos θ − y sin θ x sin θ + y cos θ 1 ] = [ cos θ − sin θ 0 sin θ cos θ 0 0 0 1 ] [ x y 1 ] = R ( θ ) [ x y 1 ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{c} x \cos \theta-y \sin \theta \\ x \sin \theta+y \cos \theta \\ 1 \end{array}\right]=\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] = R(\theta)\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] x′y′1 = xcosθ−ysinθxsinθ+ycosθ1 = cosθsinθ0−sinθcosθ0001 xy1 =R(θ) xy1
eg.rotato 45 degrees around(0,0).
-
绕 ( x 0 , y 0 ) \left( {{x}_{0}},{{y}_{0}} \right) (x0,y0)旋转,分三个步骤:a.平移。b.旋转。c.反平移。其中 ( d x , d y ) = ( x 0 , y 0 ) \left( {{d}_{x}},{{d}_{y}} \right)=\left( {{x}_{0}},{{y}_{0}} \right) (dx,dy)=(x0,y0).
[ x ′ y ′ 1 ] = [ 1 0 d x 0 1 d y 0 0 1 ] [ cos θ − sin θ 0 sin θ cos θ 0 0 0 1 ] [ 1 0 − d x 0 1 − d y 0 0 1 ] [ x y 1 ] = T ′ R ( θ ) T [ x y 1 ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{lll} 1 & 0 & d x \\ 0 & 1 & d y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{ccc} 1 & 0 & -d x \\ 0 & 1 & -d y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]=T^{\prime} R(\theta) \mathrm{T}\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] x′y′1 = 100010dxdy1 cosθsinθ0−sinθcosθ0001 100010−dx−dy1 xy1 =T′R(θ)T xy1
eg. rotato 45 degrees around(0.5,0.5).
2.3 缩放
- 原点缩放, 缩放系数
(
S
x
,
S
y
)
({{S}_{x}},{{S}_{y}})
(Sx,Sy)
[ x ′ y ′ 1 ] = [ S x ⋅ x S y ⋅ y 1 ] = [ S x 0 0 0 S y 0 0 0 1 ] [ x y 1 ] = S [ x y 1 ] \left[\begin{array}{c} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{c} S_x \cdot x \\ S_y \cdot y \\ 1 \end{array}\right]=\left[\begin{array}{ccc} S_x & 0 & 0 \\ 0 & S_y & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]=S\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] x′y′1 = Sx⋅xSy⋅y1 = Sx000Sy0001 xy1 =S xy1
eg.
- 定点
(
x
0
,
y
0
)
({{x}_{0}},{{y}_{0}})
(x0,y0)缩放, 缩放系数
(
S
x
,
S
y
)
({{S}_{x}},{{S}_{y}})
(Sx,Sy).分三步:a.Translation
(
−
x
0
,
−
y
0
)
\left( -{{x}_{0}},-{{y}_{0}} \right)
(−x0,−y0).b Scale c.Reverse translation
(
x
0
,
y
0
)
\left( {{x}_{0}},{{y}_{0}} \right)
(x0,y0)。
eg.
2.4 Summary
对于二维齐次坐标变换形式
[
a
b
c
d
e
f
g
h
i
]
\left[\begin{array}{ccc} a & b & c \\ d & e & f \\ g & h & i \end{array}\right]
adgbehcfi
- [ a b d e ] \left[\begin{array}{ccc}a & b \\d & e \end{array}\right] [adbe]可以对图形进行缩放、旋转、对称、错切等变换
- [ c f ] \left[\begin{array}{ccc} c \\ f \end{array}\right] [cf]完成图像平移操作
- [ g h ] \left[\begin{array}{ccc}g & h \end{array}\right] [gh] 对图像做投影变换
- [ i ] \left[\begin{array}{ccc}i \end{array}\right] [i]对图像整体做缩放变换
2.5 其他常见变换
1. 对称变换
[
x
′
y
′
1
]
=
[
a
x
+
b
y
d
x
+
e
y
1
]
=
[
a
b
0
d
e
0
0
0
1
]
[
x
y
1
]
\left[\begin{array}{c} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{c} a x+b y \\ d x+e y \\ 1 \end{array}\right]=\left[\begin{array}{lll} a & b & 0 \\ d & e & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]
x′y′1
=
ax+bydx+ey1
=
ad0be0001
xy1
该变换只有在a,b,d,e取0,1特定值时,能产生特定效果。如
- x ′ = x , y ′ = − y x'=x,y'=-y x′=x,y′=−y,变换与x轴对称.(a=-1,e=-1,b=d=0)
- 与y轴对称,同理。
- 与 y = x y=x y=x对称, x ′ = y , y ′ = x x'=y,y'=x x′=y,y′=x。
- 与原点对称,同理。
2. 错切(错位)变换
- 沿x轴错切,y不变,x随(x,y)变化,
S
H
x
SH_x
SHx关于x的函数。
[ x ′ y ′ 1 ] = [ x + S H x ⋅ y y 1 ] = [ 1 S H x 0 0 1 0 0 0 1 ] [ x y 1 ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{c} x+S H_x \cdot y \\ y \\ 1 \end{array}\right]=\left[\begin{array}{ccc} 1 & S H_x & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] x′y′1 = x+SHx⋅yy1 = 100SHx10001 xy1 - 沿y轴错切,同理
3. 仿射变换
该变换可由5种特殊的一般变换形式而组合。(平移,比例,旋转,对称,错切)
[
x
′
y
′
1
]
=
[
a
x
+
b
y
+
e
c
x
+
d
y
+
f
1
]
=
[
a
b
e
c
d
f
0
0
1
]
[
x
y
1
]
\left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{c} a x+b y+e \\ c x+d y+f \\ 1 \end{array}\right]=\left[\begin{array}{lll} a & b & e \\ c & d & f \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]
x′y′1
=
ax+by+ecx+dy+f1
=
ac0bd0ef1
xy1
eg.对任意一直线
l
1
A
x
+
B
y
+
C
=
0
l_1Ax+By+C = 0
l1Ax+By+C=0做坐标对称变化。可以依次5个步骤完成变换。原始坐标为
P
(
x
,
y
)
P(x,y)
P(x,y),变换后坐标为
P
′
(
x
′
,
y
′
)
P'(x',y')
P′(x′,y′).
变换矩阵为
T
=
T
5
⋅
T
4
⋅
T
3
⋅
T
2
⋅
T
1
T=T_5 \cdot T_4 \cdot T_3 \cdot T_2 \cdot T_1
T=T5⋅T4⋅T3⋅T2⋅T1:
- T 1 T_1 T1平移变换,使得 l 1 l_1 l1的x轴截点(-C/A,0)与原点重合
- T 2 T_2 T2旋转变换,使得 l 1 l_1 l1与x轴重合, θ = arctan ( − A / B ) \theta =\arctan (-A/B) θ=arctan(−A/B),(这里不考虑B=0,需要则自行考虑)。
- T 3 T_3 T3对称变换,做绕x轴的对称变换。
- T 4 T_4 T4旋转变换的逆变换,对于 T 2 T_2 T2来说 θ ′ = − θ \theta'=-\theta θ′=−θ。
- T 5 T_5 T5平移变换的逆变换,相对于 T 1 T_1 T1。
即可求的 P ′ = T P P'=TP P′=TP。