一.2D旋转
当在2D平面旋转一个向量时,旋转矩阵为
[
c
o
s
θ
−
s
i
n
θ
s
i
n
θ
c
o
s
θ
]
\begin{bmatrix} cos \theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix}
[cosθsinθ−sinθcosθ], 在上图中可以看到向量
a
→
=
(
x
,
y
)
\overrightarrow{a} = (x,y)
a=(x,y) ,将其逆时针旋转
θ
\theta
θ角度后得到
b
→
=
(
x
′
,
y
′
)
\overrightarrow{b} = ({x^{\prime},y^{\prime}})
b=(x′,y′)。假设向量的长度为
r
r
r,则:
a
→
=
(
x
,
y
)
=
(
r
c
o
s
α
,
r
s
i
n
α
)
b
→
=
(
x
′
,
y
′
)
=
(
r
c
o
s
(
θ
+
α
)
,
r
s
i
n
(
θ
+
α
)
)
\overrightarrow{a} = (x,y) = (r \space cos\alpha, r \space sin\alpha)\\ \overrightarrow{b} =({x^{\prime},y^{\prime}}) = (r \space cos(\theta+\alpha), r \space sin(\theta+\alpha))
a=(x,y)=(r cosα,r sinα)b=(x′,y′)=(r cos(θ+α),r sin(θ+α))
可以轻易求得:
x
′
=
x
c
o
s
θ
−
y
s
i
n
θ
y
′
=
x
s
i
n
θ
+
y
c
o
s
θ
x^{\prime} = x \space cos\theta - y \space sin\theta \\ y^{\prime} = x\space sin\theta + y \space cos\theta
x′=x cosθ−y sinθy′=x sinθ+y cosθ
写成矩阵乘法的形式:
[
x
′
y
′
]
=
[
c
o
s
θ
−
s
i
n
θ
s
i
n
θ
c
o
s
θ
]
[
x
y
]
\begin{bmatrix} x^{\prime} \\ y^{\prime} \end{bmatrix} = \begin{bmatrix} cos \theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}
[x′y′]=[cosθsinθ−sinθcosθ][xy]显而易见,中间的矩阵就是旋转矩阵
旋转与复数
复数与旋转有着紧密的联系,如图,在横轴为实部,纵轴为虚部的复平面上,有四个模长相等的虚数 z 1 , z 2 , z 3 , z 4 z_1,z_2,z_3,z_4 z1,z2,z3,z4。我们可以发现,当一个虚数逆时针 9 0 ∘ 90^{\circ} 90∘时,就相当于乘上虚数 i i i: z 1 ∗ i = ( 1 + i ) ∗ i = − 1 + i = z 2 z_1 * i = (1+i) *i =-1+i = z_2 z1∗i=(1+i)∗i=−1+i=z2,图中又显示 z 1 z_1 z1逆时针旋转 9 0 ∘ 90^{\circ} 90∘就是 z 2 z_2 z2;同理可以算得 z 2 , z 3 , z 4 z_2,z_3,z_4 z2,z3,z4的旋转。
这个时候我们应该思考,如果旋转
9
0
∘
90^{\circ}
90∘相当于乘以虚数
i
i
i,那么其他角度呢?我们先引入复平面的极坐标系,
在极坐标下,我们可以使用长度
r
r
r和角度
θ
\theta
θ来表示一个复数,所以我们有:
z
=
a
+
b
i
=
r
c
o
s
θ
+
i
r
s
i
n
θ
=
r
(
c
o
s
θ
+
i
s
i
n
θ
)
=
r
e
i
θ
\begin{equation*} \begin{aligned} z &= a +bi \\ &= rcos\theta + i\space r sin\theta \\ &= r(cos\theta + i sin\theta) \\ & = re^{_i\theta} \space \space \end{aligned} \end{equation*}
z=a+bi=rcosθ+i rsinθ=r(cosθ+isinθ)=reiθ
最后一步用欧拉公式,它的证明可以通过泰勒展开来证:
首先,在
x
=
0
x = 0
x=0处,
e
x
=
∑
n
=
0
∞
1
n
!
x
n
=
1
+
x
+
x
2
2
!
+
x
3
3
!
+
⋯
+
x
n
n
!
+
⋯
s
i
n
x
=
∑
k
=
0
∞
(
−
1
)
k
(
2
k
+
1
)
!
x
2
k
+
1
=
x
−
x
3
3
!
+
x
5
5
!
−
x
7
7
!
+
⋯
c
o
s
x
=
∑
k
=
0
∞
(
−
1
)
k
(
2
k
)
!
x
2
k
=
1
−
x
2
2
!
+
x
4
4
!
−
x
6
6
!
+
⋯
e^{x}\space= \sum_{n=0}^{\infty} \frac{1}{n!}x^n =1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\cdots +\frac{x^n}{n!} + \cdots \\~\\ sinx = \sum_{k=0}^{\infty} \frac{(-1)^k}{(2k+1)!}x^{2k+1} =x - \frac{x^3}{3!} + \frac{x^5}{5!} -\frac{x^7}{7!}+\cdots \\~\\ cosx = \sum_{k=0}^{\infty} \frac{(-1)^k}{(2k)!}x^{2k} =1 - \frac{x^2}{2!} + \frac{x^4}{4!} -\frac{x^6}{6!}+\cdots
ex =n=0∑∞n!1xn=1+x+2!x2+3!x3+⋯+n!xn+⋯ sinx=k=0∑∞(2k+1)!(−1)kx2k+1=x−3!x3+5!x5−7!x7+⋯ cosx=k=0∑∞(2k)!(−1)kx2k=1−2!x2+4!x4−6!x6+⋯
我们将
x
=
i
θ
x={i\theta}
x=iθ带入
e
x
e^{x}
ex,可以得到:
e
i
θ
=
∑
n
=
0
∞
1
n
!
(
i
θ
)
n
=
1
+
i
θ
+
(
i
θ
)
2
2
!
+
(
i
θ
)
3
3
!
+
⋯
+
(
i
θ
)
n
n
!
+
⋯
=
1
+
i
θ
−
(
θ
)
2
2
!
+
i
(
θ
)
3
3
!
−
(
θ
)
4
4
!
+
i
(
θ
)
5
5
!
−
(
θ
)
6
6
!
+
⋯
=
(
1
−
θ
2
2
!
+
θ
4
4
!
−
θ
6
6
!
+
⋯
)
+
i
(
θ
−
θ
3
3
!
+
θ
5
5
!
−
θ
7
7
!
+
⋯
)
=
c
o
s
θ
+
i
s
i
n
θ
\begin{equation*} \begin{aligned} e^{i\theta} &= \sum_{n=0}^{\infty} \frac{1}{n!}({i\theta})^n =1+{i\theta}+\frac{({i\theta})^2}{2!}+\frac{({i\theta})^3}{3!}+\cdots +\frac{({i\theta})^n}{n!} + \cdots\\~\\ &=1+{i\theta}-\frac{({\theta})^2}{2!}+i\frac{({\theta})^3}{3!}- \frac{({\theta})^4}{4!} + i\frac{({\theta})^5}{5!}- \frac{({\theta})^6}{6!}+\cdots\\~\\ &= (1 - \frac{{\theta}^2}{2!} + \frac{{\theta}^4}{4!} -\frac{{\theta}^6}{6!}+\cdots) + i ({\theta} - \frac{{\theta}^3}{3!} + \frac{{\theta}^5}{5!} -\frac{{\theta}^7}{7!}+\cdots) \\~\\ &=cos{\theta} + i sin{\theta} \end{aligned} \end{equation*}
eiθ =n=0∑∞n!1(iθ)n=1+iθ+2!(iθ)2+3!(iθ)3+⋯+n!(iθ)n+⋯=1+iθ−2!(θ)2+i3!(θ)3−4!(θ)4+i5!(θ)5−6!(θ)6+⋯=(1−2!θ2+4!θ4−6!θ6+⋯)+i(θ−3!θ3+5!θ5−7!θ7+⋯)=cosθ+isinθ
证毕。
当利用指数形式的复数表示做乘法运算的时候,我们可以轻易得到:
z
1
=
r
1
e
i
θ
1
,
z
2
=
r
2
e
i
θ
2
z
1
z
2
=
(
r
1
r
2
)
e
i
(
θ
1
+
θ
2
)
z_{1} = r_1 e^{i\theta_{1}}, \space z_{2} = r_2 e^{i\theta_{2}} \\ ~\\ z_1 z_2 = (r_1r_2)e^{i(\theta_{1} + \theta_{2})}
z1=r1eiθ1, z2=r2eiθ2 z1z2=(r1r2)ei(θ1+θ2)
这说明当我们将两个复数相乘得到的新复数的模长为两个复数模长的乘积,而角度为两复数角度之和。我们可以以此推断当乘以一个复数时,会做缩放和旋转操作。而当模长为1时比如
z
=
e
i
θ
z = e^{i\theta}
z=eiθ,就仅仅相当于做逆时针旋转
θ
\theta
θ角度。
由此我们可以发现复数和旋转的紧密联系。