在numpy中给定两个向量,计算平行四边形的面积



假设我有两个三维矢量,由两个numpy数组表示:

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

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

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

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

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

最新更新