点积(Dot Product)和叉积(Cross Product)

**点积(Dot Product)叉积(Cross Product)**是向量代数中最基础且最重要的两种运算,它们的结果、几何意义和物理应用截然不同。

以下是核心区别对比:

1. 核心区别一览表

特性 点积 (Dot Product) a⋅b\mathbf{a} \cdot \mathbf{b}a⋅b 叉积 (Cross Product) a×b\mathbf{a} \times \mathbf{b}a×b
结果类型 标量 (Scalar) (一个数值,如 5,−2.55, -2.55,−2.5) 向量 (Vector) (一个有方向和大小的量)
几何意义 投影 / 相似度 衡量两个向量方向有多"接近"。 垂直 / 面积 生成一个垂直于原两个向量的新向量。
公式 $ \mathbf{a}
维度要求 适用于任意维度 (2D, 3D, N维) 仅适用于 3D (或 7D)
交换律 满足 (a⋅b=b⋅a\mathbf{a} \cdot \mathbf{b} = \mathbf{b} \cdot \mathbf{a}a⋅b=b⋅a) 不满足 (a×b=−b×a\mathbf{a} \times \mathbf{b} = - \mathbf{b} \times \mathbf{a}a×b=−b×a)
零结果含义 结果为0 →\rightarrow→ 向量垂直 (θ=90∘\theta=90^\circθ=90∘) 结果为0 →\rightarrow→ 向量平行 (θ=0∘\theta=0^\circθ=0∘ 或 180∘180^\circ180∘)

2. 详细解析

A. 点积 (Dot Product)

别名:数量积、内积

  • 直观理解

    想象你推着一个箱子走。点积计算的是"你的推力方向 "与"箱子移动方向"的一致性。

    • 如果你推着箱子往前走(同向),做正功(正值)。
    • 如果你推着箱子往后拉(反向),做负功(负值)。
    • 如果你侧着推(垂直),箱子不前后移动,不做功(零值)。
  • 数学计算 (三维向量 a=a1,a2,a3,b=b1,b2,b3\mathbf{a}=a_1, a_2, a_3, \mathbf{b}=b_1, b_2, b_3a=a1,a2,a3,b=b1,b2,b3):

    a⋅b=a1b1+a2b2+a3b3 \mathbf{a} \cdot \mathbf{b} = a_1b_1 + a_2b_2 + a_3b_3 a⋅b=a1b1+a2b2+a3b3

  • 在 3D 重建/GSplat 中的应用

    • 计算相机视线方向与高斯表面法线的夹角,用于确定可见性。
    • 计算两个向量的夹角余弦值。
B. 叉积 (Cross Product)

别名:向量积、外积

  • 直观理解

    想象你用右手定则。食指指向 a\mathbf{a}a,中指指向 b\mathbf{b}b,大拇指指向的方向就是 a×b\mathbf{a} \times \mathbf{b}a×b 的方向。

    • 它生成了一个垂直 于 a\mathbf{a}a 和 b\mathbf{b}b 所构成平面的法向量。
    • 它的大小等于以 a\mathbf{a}a 和 b\mathbf{b}b 为邻边的平行四边形的面积
  • 数学计算 (使用行列式形式):

    a×b=∣ijka1a2a3b1b2b3∣=(a2b3−a3b2)i−(a1b3−a3b1)j+(a1b2−a2b1)k \mathbf{a} \times \mathbf{b} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \end{vmatrix} = (a_2b_3 - a_3b_2)\mathbf{i} - (a_1b_3 - a_3b_1)\mathbf{j} + (a_1b_2 - a_2b_1)\mathbf{k} a×b= ia1b1ja2b2ka3b3 =(a2b3−a3b2)i−(a1b3−a3b1)j+(a1b2−a2b1)k

    即:

    {x=a2b3−a3b2y=a3b1−a1b3z=a1b2−a2b1 \begin{cases} x = a_2b_3 - a_3b_2 \\ y = a_3b_1 - a_1b_3 \\ z = a_1b_2 - a_2b_1 \end{cases} ⎩ ⎨ ⎧x=a2b3−a3b2y=a3b1−a1b3z=a1b2−a2b1

  • 在 3D 重建/GSplat 中的应用

    • 计算法线:给定三角形三个顶点,用两条边的叉积求出三角形表面的法线。
    • 构建局部坐标系:在渲染高斯泼溅时,需要构建相机空间的局部坐标系,常用叉积来确定正交基(U, V, N)。
    • 判断方向:判断一个点是位于平面的左侧还是右侧。

3. 记忆小技巧

  • 点积 (Dot) :结果是一个 (标量)。
    • 口诀:"点积得数, cosine 角度。"
  • 叉积 (Cross) :结果是一个交叉 的箭头(向量),垂直于原平面。
    • 口诀:"叉积得向, sine 面积,右手螺旋。"

4. 代码对比 (Python/NumPy)

python 复制代码
import numpy as np

a = np.array([1, 0, 0])
b = np.array([0, 1, 0])

# 点积
dot_res = np.dot(a, b)
print(f"点积结果: {dot_res}")  
# 输出: 0 (因为互相垂直)

# 叉积
cross_res = np.cross(a, b)
print(f"叉积结果: {cross_res}") 
# 输出: [0 0 1] (因为垂直于XY平面,指向Z轴)

总结

  • 如果你想问**"这两个向量方向有多像?"** 或 "投影长度是多少?" →\rightarrow→ 用 点积
  • 如果你想问**"这两个向量张成的平面法线指向哪?"** 或 "它们构成的面积多大?" →\rightarrow→ 用 叉积
相关推荐
aWty_2 天前
实分析入门(12)--可测函数
学习·数学·算法·实变函数
databook2 天前
一次函数图像工厂:用 SymPy 自动生成 y=kx+b 对比动画
python·数学·动效
装不满的克莱因瓶3 天前
图像尺寸调整:缩放矩阵如何改变像素坐标?
人工智能·线性代数·数学·算法·机器学习·矩阵
闻缺陷则喜何志丹3 天前
【几何】指定半径倒角的实现,暂不考虑误差
数学·计算几何·几何·倒角
装不满的克莱因瓶3 天前
什么是特征分解?从数学定义到现实问题的映射
人工智能·数学·算法·机器学习·ai·特征分解
aWty_3 天前
实分析入门(11)--Cantor三分集
学习·数学·算法·实变函数
databook4 天前
用 SymPy 解决 Manim 曲线绘制速度不均的问题
python·数学·动效
Luhui Dev6 天前
大角几何 MCP 服务上线:让 AI Agent 直接完成几何作图
人工智能·数学·机器学习·大角几何·luhuidev
Tisfy6 天前
LeetCode 3300.替换为数位和以后的最小元素:一次遍历
数学·算法·leetcode·模拟