首页 > 解决方案 > 在numpy中给定两个向量计算平行四边形的面积

问题描述

假设我有两个由两个 numpy 数组表示的 3D 向量:

import numpy as np
v1 = np.array([2, -3, 5])
v2 = np.array([1, 4, -2])

我想计算平行四边形的面积,其中相邻的两个边由v1和给出v2。我写了以下代码:

import math
area = math.sqrt((v1[0] * v2[1] - v1[1] * v2[0])**2
               + (v1[1] * v2[2] - v1[2] * v2[1])**2
               + (v1[0] * v2[2] - v1[2] * v2[0])**2)

print(area)
# 19.949937343260004

代码工作正常,但是编码这个的 numpyic 方法是什么?我不熟悉numpy。

标签: pythonpython-3.xnumpy

解决方案


平行四边形的面积可以通过两个向量的叉积的范数来计算。从叉积定义中可以看出,叉积的范数基本上是|a||b|sin(θ) ,这是平行四边形常用的面积公式之一。

np.linalg.norm(np.cross(v1, v2))
# 19.949937343260004

推荐阅读