矩阵的线性变换(不考虑平移)
绕坐标轴旋转
绕
x
轴
旋
转
=
>
R
x
(
θ
)
=
[
1
0
0
0
c
o
s
θ
s
i
n
θ
0
−
s
i
n
θ
c
o
n
θ
]
绕x轴旋转 => R~x~(θ) =\begin{bmatrix} 1 & 0 & 0 \\ 0 & cosθ & sinθ \\ 0 &-sinθ & conθ \end{bmatrix}
绕x轴旋转=>R x (θ)=⎣⎡1000cosθ−sinθ0sinθconθ⎦⎤
绕
y
轴
旋
转
=
>
R
y
(
θ
)
=
[
c
o
s
θ
0
−
s
i
n
θ
0
1
0
s
i
n
θ
0
c
o
n
θ
]
绕y轴旋转 => R~y~(θ) =\begin{bmatrix} cosθ & 0 & -sinθ \\ 0 & 1 & 0 \\ sinθ & 0 & conθ \end{bmatrix}
绕y轴旋转=>R y (θ)=⎣⎡cosθ0sinθ010−sinθ0conθ⎦⎤
绕
z
轴
旋
转
=
>
R
z
(
θ
)
=
[
c
o
s
θ
s
i
n
θ
0
−
s
i
n
θ
c
o
s
θ
0
0
0
1
]
绕z轴旋转 => R~z~(θ) =\begin{bmatrix} cosθ & sinθ & 0 \\ -sinθ & cosθ & 0 \\ 0 & 0 & 1 \end{bmatrix}
绕z轴旋转=>R z (θ)=⎣⎡cosθ−sinθ0sinθcosθ0001⎦⎤
绕任意轴旋转
用单位向量n来描述旋转轴
绕
任
意
轴
旋
转
=
>
R
(
n
,
θ
)
=
[
n
x
2
(
1
−
c
o
s
θ
)
+
c
o
s
θ
n
x
n
y
(
1
−
c
o
s
θ
)
+
n
z
s
i
n
θ
n
x
n
z
(
1
−
c
o
s
θ
)
−
n
y
s
i
n
θ
n
x
n
y
(
1
−
c
o
s
θ
)
−
n
z
s
i
n
θ
n
y
2
(
1
−
c
o
s
θ
)
+
c
o
s
θ
n
y
n
z
(
1
−
c
o
s
θ
)
+
n
x
s
i
n
θ
n
x
n
z
(
1
−
c
o
s
θ
)
+
n
y
s
i
n
θ
n
y
n
z
(
1
−
c
o
s
θ
)
−
n
x
s
i
n
θ
n
z
2
(
1
−
c
o
s
θ
)
+
c
o
s
θ
]
绕任意轴旋转 => R~(n,θ)~ =\begin{bmatrix} n_x^2(1-cos\theta)+cos\theta& n_xn_y(1-cos\theta)+n_zsin\theta & n_xn_z(1-cos\theta)-n_ysin\theta \\ n_xn_y(1-cos\theta)-n_zsin\theta & n_y^2(1-cos\theta)+cos\theta & n_yn_z(1-cos\theta)+n_xsin\theta \\ n_xn_z(1-cos\theta)+n_ysin\theta & n_yn_z(1-cos\theta)-n_xsin\theta & n_z^2(1-cos\theta)+cos\theta \end{bmatrix}
绕任意轴旋转=>R (n,θ) =⎣⎡nx2(1−cosθ)+cosθnxny(1−cosθ)−nzsinθnxnz(1−cosθ)+nysinθnxny(1−cosθ)+nzsinθny2(1−cosθ)+cosθnynz(1−cosθ)−nxsinθnxnz(1−cosθ)−nysinθnynz(1−cosθ)+nxsinθnz2(1−cosθ)+cosθ⎦⎤
沿坐标轴缩放
S ( k x , k y , k z ) = [ k x 0 0 0 k y 0 0 0 k z ] S(k_x,k_y,k_z) =\begin{bmatrix} k_x & 0 & 0 \\ 0 & k_y & 0 \\ 0 & 0 & k_z \end{bmatrix} S(kx,ky,kz)=⎣⎡kx000ky000kz⎦⎤
沿任意方向进行缩放
以单位向量n为缩放方向,k为缩放因子
S
(
n
,
k
)
=
[
1
+
(
k
−
1
)
n
x
2
(
k
−
1
)
n
x
n
y
(
k
−
1
)
n
x
n
z
(
k
−
1
)
n
x
n
y
1
+
(
k
−
1
)
n
y
2
(
k
−
1
)
n
y
n
z
(
k
−
1
)
n
x
n
z
(
k
−
1
)
n
z
n
y
1
+
(
k
−
1
)
n
z
2
]
S(n,k) =\begin{bmatrix} 1+(k-1)n_x^2 & (k-1)n_xn_y & (k-1)n_xn_z \\ (k-1)n_xn_y & 1+(k-1)n_y^2 & (k-1)n_yn_z \\ (k-1)n_xn_z & (k-1)n_zn_y & 1+(k-1)n_z^2 \end{bmatrix}
S(n,k)=⎣⎡1+(k−1)nx2(k−1)nxny(k−1)nxnz(k−1)nxny1+(k−1)ny2(k−1)nzny(k−1)nxnz(k−1)nynz1+(k−1)nz2⎦⎤
正交投影
简单理解就是降维,它是一种平行投影
向
x
y
平
面
投
影
P
x
y
=
[
1
0
0
0
1
0
0
0
0
]
向xy平面投影P_x\\_y=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix}
向xy平面投影Pxy=⎣⎡100010000⎦⎤
向
x
z
平
面
投
影
P
x
z
=
[
1
0
0
0
0
0
0
0
1
]
向xz平面投影P_x\\_z=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 0& 0 \\ 0 & 0 & 1 \end{bmatrix}
向xz平面投影Pxz=⎣⎡100000001⎦⎤
向
y
z
平
面
投
影
P
y
z
=
[
0
0
0
0
1
0
0
0
1
]
向yz平面投影P_y\\_z=\begin{bmatrix} 0 & 0 & 0 \\ 0 & 1& 0 \\ 0 & 0 & 1 \end{bmatrix}
向yz平面投影Pyz=⎣⎡000010001⎦⎤
向
任
意
直
线
或
平
面
投
影
P
n
=
[
1
−
n
x
2
−
n
x
n
y
−
n
x
n
z
−
n
x
n
y
1
−
n
y
2
−
n
y
n
z
−
n
x
n
z
−
n
y
n
z
1
−
n
z
2
]
向任意直线或平面投影P_n=\begin{bmatrix} 1-n_x^2 & -n_xn_y & -n_xn_z \\ -n_xn_y & 1-n_y^2& -n_yn_z \\ -n_xn_z & -n_yn_z & 1-n_z^2 \end{bmatrix}
向任意直线或平面投影Pn=⎣⎡1−nx2−nxny−nxnz−nxny1−ny2−nynz−nxnz−nynz1−nz2⎦⎤
镜像
P n = [ 1 − 2 n x 2 − 2 n x n y − 2 n x n z − 2 n x n y 1 − 2 n y 2 − 2 n y n z − 2 n x n z − 2 n y n z 1 − 2 n z 2 ] P_n=\begin{bmatrix} 1-2n_x^2 & -2n_xn_y & -2n_xn_z \\ -2n_xn_y & 1-2n_y^2& -2n_yn_z \\ -2n_xn_z & -2n_yn_z & 1-2n_z^2 \end{bmatrix} Pn=⎣⎡1−2nx2−2nxny−2nxnz−2nxny1−2ny2−2nynz−2nxnz−2nynz1−2nz2⎦⎤
切变
x , y 坐 标 被 z 坐 标 切 变 = > H x y ( s , t ) = [ 1 0 0 0 1 0 s t 1 ] x,y坐标被z坐标切变 => H_x\\_y(s,t) =\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ s & t & 1 \end{bmatrix} x,y坐标被z坐标切变=>Hxy(s,t)=⎣⎡10s01t001⎦⎤
x , z 坐 标 被 y 坐 标 切 变 = > H x z ( s , t ) = [ 1 0 0 s 1 t 0 0 1 ] x,z坐标被y坐标切变 => H_x\\_z(s,t) =\begin{bmatrix} 1 & 0 & 0 \\ s & 1 & t \\ 0 & 0 & 1 \end{bmatrix} x,z坐标被y坐标切变=>Hxz(s,t)=⎣⎡1s00100t1⎦⎤
y , z 坐 标 被 x 坐 标 切 变 = > H y z ( s , t ) = [ 1 s t 0 1 0 0 0 1 ] y,z坐标被x坐标切变 => H_y\\_z(s,t) =\begin{bmatrix} 1 & s & t \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} y,z坐标被x坐标切变=>Hyz(s,t)=⎣⎡100s10t01⎦⎤