C++ 程序计算两个向量的点积和叉积

2025 年 3 月 24 日 | 4 分钟阅读

任务是确定两个给定向量数组的叉积和点积。假设我们有两个向量,**_向量 A_** 和 **_向量 B_**,每个向量都包含 x、y 和方向。在本文中,我们将讨论一个 C++ 程序来找到两个向量的点积和叉积。但在深入了解其实现之前,我们必须了解向量。

什么是向量?

在数学中,具有大小和方向的量称为 **_向量_**,而只有一个大小值的量称为 **_标量_**。起点是向量的起始位置,终点是其结束位置。向量的大小定义为其起点和终点之间的距离。

向量有多种类型,例如:

  • 单位向量: 如果向量的大小为 1,则称其为单位向量。
  • 零向量: 由于此类向量的起点和终点相同,因此也称为零向量。
  • 共起点向量: 如果两个或多个向量具有相同的起点,则称它们为共起点向量。
  • 共线向量: 如果两个或多个向量与同一条直线平行,则称它们为共线向量。
  • 相等向量: 如果两个向量的大小和方向相同,则称它们相等。

什么是点积?

  • **_点积_**,也称为 **_内积_** 或 **_标量积_**,是一种数学运算,其中两个向量的结果是一个标量(一个单一的数值)。为了理解和处理向量行为,点积定义用于 2D 和 3D 向量。它应用于许多领域,包括计算机图形学、数学和物理学。
  • 点积也称为标量积,其定义如下:

假设我们有两个向量,A = a1 * i + a2 * j + a3 * k 和 B = b1 * i + b2 * j + b3 * k。向量的方向是 x、y 和 z,它们的值为 1,表示它们是单位向量。点积,也称为标量积,是 a1 * b1 + a2 * b2 + a3 * b3。

什么是叉积?

  • 在 **_三维_** 空间中,**_叉积_** 是两个向量上的二元运算。同样,结果是一个与两个向量都正交的向量。右手定则可用于计算两个向量的叉积。
  • 任何两个相互垂直的向量都会产生右手定则。我们还可以通过使用叉积来确定结果向量的大小。
  • 叉积也称为向量积,其定义如下:

假设 A = a1 * i + a2 * j + a3 * k 和 B = b1 * i + b2 * j + b3 * k 是我们的两个向量。那么,叉积是 (a2 * b3 - a3 * b2) * i - (a1 * b3 - a3 * b1) * j + (a1 * b2 - a2 * b1) * k,其中向量的方向是 i、j 和 k,单位向量的系数是 a2 * b3 - a3 * b2、a1 * b3 - a3 * b1 和 a1 * b1 - a2 * b1。

算法

示例

让我们举一个例子来说明 C++ 中的 **_点积_**。

输出

C++ Program for dot product and cross product of two Vectors