3D数学基础:图形与游戏开发

  1. 1. 2、笛卡尔坐标系
  2. 2. 3、多坐标系
    1. 2.1. 3.2 一些有用的坐标系
      1. 2.1.1. 3.2.1 世界坐标系
      2. 2.1.2. 3.2.2 物体坐标系
      3. 2.1.3. 3.2.3 摄像机坐标系
      4. 2.1.4. 3.2.4 惯性坐标系
  3. 3. 4、向量与标量
  4. 4. 5、向量运算
    1. 4.1. 5.2 符号约定
    2. 4.2. 5.10 向量点乘
      1. 4.2.1. 5.10.1 运算法则
      2. 4.2.2. 5.10.2 几何解释
      3. 4.2.3. 5.10.3 向量投影
    3. 4.3. 5.11 向量叉乘
      1. 4.3.1. 5.10.1 运算法则
      2. 4.3.2. 5.10.2 几何解释
    4. 4.4. 5.12 线性代数公式

2、笛卡尔坐标系

3、多坐标系

3.2 一些有用的坐标系
3.2.1 世界坐标系

​ 世界坐标系建立了描述其他坐标系所需要的参考框架,能够用世界坐标系描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。

​ 世界坐标系的典型问题都是关于初始位置和环境的,如:

  • 每个物体的位置和方向;
  • 摄像机的位置和方向;
  • 世界中没一点的地形是什么(如山丘、湖泊等);
  • 个物体从哪里来,到哪里去(NPC的运动策略)。
3.2.2 物体坐标系

​ 物体坐标系是特定物体相关联的坐标系,每个物体都有独立的坐标系,当物体移动或改变方向时,该物体相关联的坐标系也会移动或改变方向。

​ 世界坐标系也叫模型坐标系。

  • 周围有需要相互作用的物体吗?(我要攻击他吗?)
  • 哪个方向?前面?左边?
3.2.3 摄像机坐标系

​ 摄像机坐标系是和观察者密切相关的坐标系。可以被看做是一种特殊的“物体“坐标系,该”物体“坐标系定义在摄像机的屏幕可视区域。

  • 3D空间中的给定点在摄像机前方吗?
  • 某个物体是否在屏幕上?
  • 两个物体,谁在前?
3.2.4 惯性坐标系

​ 为了简化世界坐标系到物体坐标系的转换,引入的新的坐标系。惯性坐标系的原点和物体坐标系的原点重合,轴和世界坐标系的轴平行。

​ 从世界坐标系到惯性坐标系只需要平移,从惯性坐标系到物体坐标系只需要旋转。

4、向量与标量

5、向量运算

5.2 符号约定
  • 标量:斜体小写字母 a, b, c, d, e
  • 向量:粗体小写 a, b, c, d, e
  • 矩阵:粗体大写 A, B, C, D
5.10 向量点乘
5.10.1 运算法则

​ 向量点乘记为 a·b,为对应分量乘积的和,结果为标量。

​ [a1,a2…an-1,an]·[b1,b2…bn-1,bn] = a1b1 + a2b2 + … + an bn

5.10.2 几何解释

a·b = |a| |b|cosθ

​ θ = arccos((a·b)/(|a||b|))

​ 根据θ的大小,可以判断两向量的方向。可用于判断怪物与人物的位置关系。

5.10.3 向量投影

​ 给定两个向量 vn ,基于向量 n, 可以将v分解为平行和垂直n的两个向量 v1v2

v1 = n|v1|/|n|

image-20221012141522918

5.11 向量叉乘
5.10.1 运算法则

​ [x1, y1, z1]x[x- y2, z2] = [y1z2 - z1y2, z1x2 - x1z2, x1y2 - y1x2]

​ 叉乘的运算优先级和点乘一样,叉乘优先计算。

5.10.2 几何解释

​ 叉乘得到的向量垂直于原来的两个向量平面

​ |a x b| = |a| |b| sinθ

​ 叉乘的结果的模值等于以ab为边的平行四边形的面积

5.12 线性代数公式

//