0%

线性代数在游戏开发中的基础和简单应用

坐标系

  • 笛卡尔坐标系
  • 圆柱坐标系
    垂直“高度与” hh 、从垂直轴发出的辐射轴 rr 、偏航角(yaw) θ\theta
  • 球坐标系
    俯仰角(pitch) ϕ\phi 、偏航角(yaw) θ\theta 、半径长度 rr
    eg. 经纬线

笛卡尔坐标系的左手系和右手系

手握拳,伸出大拇指,四指从 xx 轴指向 yy 轴,大拇指指向 zz 轴,这就是右手系。

反之为左手系。

向量(vector)

在 n 维空间中包含 modulus (模)和 direction (方向)的量。

模长

向量的模长是向量的长度,用 v||\vec{v}|| 表示。

v=v12+v22++vn2 ||\vec{v}|| = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}

magic number (卡马克快速平方根)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
float Q_rsqrt( float number )
{

long i;
float x2, y;
const float threehalfs = 1.5F;

x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - (i >> 1); // what the fuck?
y = * ( float * ) &i;
y = y * (threehalfs - ( x2 * y * y ) ); // 1st iteration
y = y * (threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed

return y;
}

科普视频

真正的作者

归一化和单位向量

三角形法则(加减法)

点积

  • 投影的计算
  • 是否共线

叉积

  • 右手法则的原理
  • 点在三角形的内/外?

线性插值 (Lerp)

矩阵

用矩阵表示点和向量

单位矩阵

矩阵乘法

矩阵的转置

逆矩阵于逆矩阵的求法

逆矩阵的求法

伴随矩阵

正交矩阵

齐次坐标 (来不及就不讲)

欢迎关注我的其它发布渠道