目录
1. 代数
1.1 笛卡尔坐标系
相交于原点的三条不共面的数轴构成空间的放射坐标系。三条数轴上度量单位相等的放射坐标系被称为空间笛卡尔坐标系。三条数轴互相垂直的笛卡尔坐标系被称为空间笛卡尔直角坐标系[^1]。空间笛卡尔直角坐标系是我们最常使用的一套坐标系,后面简称为坐标系,后续内容都基于此坐标系。
1.2 点
一个坐标系里的所有点
P
P
P可以表示为
P
=
[
x
,
y
,
z
,
w
]
=
[
x
,
y
,
z
,
1
]
,
其
中
w
≡
1
P=[x, y, z, w]=[x, y, z, 1] , 其中w\equiv1
P=[x,y,z,w]=[x,y,z,1],其中w≡1
x
,
y
,
z
x, y, z
x,y,z表示点
P
P
P离该坐标系原点
O
=
[
0
,
0
,
0
,
1
]
O=[0, 0, 0, 1]
O=[0,0,0,1]的距离 。
1.3 向量
向量是只有大小和方向的量。点之间的关系可以用向量
V
⃗
\vec{V}
V来表示
V
⃗
=
[
x
,
y
,
z
,
w
]
=
[
x
,
y
,
z
,
0
]
,
其
中
w
≡
0
∣
V
⃗
∣
=
d
o
t
(
V
⃗
,
V
⃗
)
=
x
∗
x
+
y
∗
y
+
z
∗
z
\vec{V} = [x, y, z, w] = [x, y, z, 0] , 其中w\equiv0 \\ |\vec{V}|=dot(\vec{V},\vec{V})=\sqrt{x*x+y*y+z*z}
V=[x,y,z,w]=[x,y,z,0],其中w≡0∣V∣=dot(V,V)=x∗x+y∗y+z∗z
向量的点积,可用于求两个向量间的夹角
d
o
t
(
a
⃗
,
b
⃗
)
=
∣
a
⃗
∣
∗
∣
b
⃗
∣
∗
cos
(
θ
)
=
x
a
∗
x
b
+
y
a
∗
y
b
+
z
a
∗
z
b
dot(\vec{a},\vec{b})=|\vec{a}|*|\vec{b}|*\cos(\theta)=\sqrt{x_a*x_b+y_a*y_b+z_a*z_b}
dot(a,b)=∣a∣∗∣b∣∗cos(θ)=xa∗xb+ya∗yb+za∗zb
其中
θ
\theta
θ是两个向量间的夹角。
向量的叉积,一般用于求两个向量所定义的平面的法向量
a
⃗
×
b
⃗
=
∣
a
⃗
∣
∗
∣
b
⃗
∣
∗
sin
(
θ
)
\vec{a} \times \vec{b}=|\vec{a}|*|\vec{b}|*\sin(\theta)
a×b=∣a∣∗∣b∣∗sin(θ)
1.4 矩阵
矩阵是一组元素按某些规则排列而成,使用符号
M
M
M表示
M
=
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
…
…
…
…
a
m
1
a
m
2
⋯
a
m
n
]
M = \left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \ldots & \ldots & \ldots & \ldots\\ a_{m1} & a_{m2} &\cdots & a_{mn}\\ \end{matrix} \right]
M=⎣⎢⎢⎡a11a21…am1a12a22…am2⋯⋯…⋯a1na2n…amn⎦⎥⎥⎤
矩阵的行列式。
矩阵乘法。要求满足左边的列数等于右边的行数。不满足交换律,满足结合律、分配律。
转置矩阵。
逆矩阵。奇异矩阵,不可逆。
正交矩阵。装置矩阵等于逆矩阵。计算转置矩阵比计算逆矩阵快。
2. 变换矩阵
2.1 平移
平移是一个点到另一个点的变换,使用矩阵
T
T
T表示
T
(
t
⃗
)
=
T
(
t
x
,
t
y
,
t
z
)
=
[
1
0
0
t
x
0
1
0
t
y
0
0
1
t
z
0
0
0
1
]
T(\vec{t})= T(t_x,t_y, t_z)= \left[ \begin{matrix} 1 & 0 & 0 & t_x\\ 0 & 1 & 0 & t_y\\ 0 & 0 & 1 & t_z\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
T(t)=T(tx,ty,tz)=⎣⎢⎢⎡100001000010txtytz1⎦⎥⎥⎤
T
−
1
(
t
⃗
)
=
T
(
−
t
⃗
)
T^{-1}(\vec{t})=T(-\vec{t})
T−1(t)=T(−t)
2.2 旋转
旋转需要绕某一坐标轴来进行旋转,使用矩阵
R
R
R表示
R
x
(
θ
)
=
[
1
0
0
0
0
cos
θ
−
sin
θ
0
0
sin
θ
cos
θ
0
0
0
0
1
]
R
y
(
θ
)
=
[
cos
θ
0
sin
θ
0
0
1
0
0
−
sin
θ
0
cos
θ
0
0
0
0
1
]
R
z
(
θ
)
=
[
cos
θ
−
sin
θ
0
0
sin
θ
cos
θ
0
0
0
0
1
0
0
0
0
1
]
R_x(\theta)= \left[ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & \cos\theta & -\sin\theta & 0\\ 0 & \sin\theta & \cos\theta & 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]\\ \\ R_y(\theta)= \left[ \begin{matrix} \cos\theta & 0 & \sin\theta & 0\\ 0 & 1 & 0 & 0\\ -\sin\theta & 0& \cos\theta & 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]\\ \\ R_z(\theta)= \left[ \begin{matrix} \cos\theta & -\sin\theta & 0 & 0\\ \sin\theta & \cos\theta & 0 & 0\\ 0 & 0& 1 & 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
Rx(θ)=⎣⎢⎢⎡10000cosθsinθ00−sinθcosθ00001⎦⎥⎥⎤Ry(θ)=⎣⎢⎢⎡cosθ0−sinθ00100sinθ0cosθ00001⎦⎥⎥⎤Rz(θ)=⎣⎢⎢⎡cosθsinθ00−sinθcosθ0000100001⎦⎥⎥⎤
R
i
−
1
(
θ
)
=
R
i
(
−
θ
)
R_i^{-1}(\theta)=R_i(-\theta)
Ri−1(θ)=Ri(−θ)
2.3 缩放
缩放使用矩阵
S
S
S表示
S
(
t
⃗
)
=
S
(
s
x
,
s
y
,
s
z
)
=
[
s
x
0
0
0
0
s
y
0
0
0
0
s
z
0
0
0
0
1
]
S(\vec{t})= S(s_x,s_y, s_z)=\left[ \begin{matrix} s_x & 0 & 0 & 0\\ 0 & s_y & 0 & 0\\ 0 & 0 & s_z & 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
S(t)=S(sx,sy,sz)=⎣⎢⎢⎡sx0000sy0000sz00001⎦⎥⎥⎤
S
−
1
(
s
⃗
)
=
S
(
1
/
s
⃗
)
=
S
(
1
/
s
x
,
1
/
s
y
,
1
/
s
z
)
S^{-1}(\vec{s})=S(1/\vec{s})= S(1/s_x,1/s_y, 1/s_z)
S−1(s)=S(1/s)=S(1/sx,1/sy,1/sz)
2.4 切变
进行切变变换的物体的面积不变,使用 H H H表示
2.5 矩阵的连接和分解
TRS
2.6 模型空间、世界空间、观察空间和齐次裁剪空间
变换矩阵
3. 四元数
欧拉角和四元数之间的转换关系。
万向节死锁。