返回
WebGL 学习之路:向量加法与数乘初探
前端
2023-09-25 16:04:31
各位探索三维图形世界的冒险家们,欢迎来到 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);
结语
通过掌握向量加法和数乘,我们已经迈出了解向量世界的第一步。这些基本运算将成为我们后续探索更复杂概念的基础。在接下来的课程中,我们将继续深入探究内积、叉乘等向量运算,为您揭开三维图形学中的更多奥秘。