返回

WebGL 学习之路:向量加法与数乘初探

前端

各位探索三维图形世界的冒险家们,欢迎来到 WebGL 学习之路的第十一课。今天,我们踏上的旅程将带领大家揭开向量的面纱,从两个基本运算——加法和数乘——开始。这些看似简单的操作是深入理解向量世界不可或缺的基石,掌握它们,将为我们后续探索内积、叉乘等更高级概念铺平道路。

向量在三维图形学中无处不在,它们代表了方向和大小,是构建和操纵三维物体不可或缺的工具。通过了解向量的基本运算,我们能够掌控这些三维空间中的基本构建块。

向量加法

想象一下,有两个向量,一个指向北,另一个指向东。如何得到一个指向东北方向的向量?答案就是向量加法。

向量加法将两个向量逐个分量相加。例如,如果第一个向量是 (x1, y1, z1),第二个向量是 (x2, y2, z2),那么它们的和向量为:

(x1 + x2, y1 + y2, z1 + z2)

通过向量加法,我们可以将不同的方向和大小组合起来,创建出新的向量,这在三维空间的移动、旋转和缩放操作中至关重要。

数乘

数乘将一个标量(一个数字)与一个向量相乘。它会将向量的每个分量都乘以该标量。例如,如果向量为 (x, y, z),标量为 k,那么数乘的结果为:

(kx, ky, kz)

数乘可以用来缩放向量,即改变其长度而不改变其方向。这在调整物体的大小或创建平移运动时非常有用。

入门实战

现在,让我们通过一些简单的 JavaScript 代码示例来实践一下:

// 向量类
class Vector3 {
  constructor(x, y, z) {
    this.x = x;
    this.y = y;
    this.z = z;
  }

  // 向量加法
  add(other) {
    return new Vector3(this.x + other.x, this.y + other.y, this.z + other.z);
  }

  // 数乘
  multiplyScalar(k) {
    return new Vector3(this.x * k, this.y * k, this.z * k);
  }
}

// 创建两个向量
const vector1 = new Vector3(1, 2, 3);
const vector2 = new Vector3(4, 5, 6);

// 向量加法
const sumVector = vector1.add(vector2);
console.log("向量加法结果:", sumVector);

// 数乘
const scaledVector = vector1.multiplyScalar(2);
console.log("数乘结果:", scaledVector);

结语

通过掌握向量加法和数乘,我们已经迈出了解向量世界的第一步。这些基本运算将成为我们后续探索更复杂概念的基础。在接下来的课程中,我们将继续深入探究内积、叉乘等向量运算,为您揭开三维图形学中的更多奥秘。