问题

一直空间散点坐标值,计算三点组成三角形的面积。

方法1

利用矩阵来计算
这里是否需要加绝对值?

import numpy as np
def area(p):
    p1, p2, p3 = p
    a = [[1, 1, 1],
         [p2[0] - p1[0], p2[1] - p1[1], p2[2] - p1[2]],
         [p3[0] - p1[0], p3[1] - p1[1], p3[2] - p1[2]]]
    s = 0.5 * np.linalg.det(a)
    return s

方法2

利用海伦公式

def heron(p):
    p1, p2, p3 = p
    a = ((p1[0]-p2[0])**2+((p1[1]-p2[1]))**2+((p1[2]-p2[2]))**2)**0.5
    b = ((p1[0]-p3[0])**2+((p1[1]-p3[1]))**2+((p1[2]-p3[2]))**2)**0.5
    c = ((p2[0]-p3[0])**2+((p2[1]-p3[1]))**2+((p2[2]-p3[2]))**2)**0.5
    l = (a+b+c)/2
    s = (l*(l-a)*(l-b)*(l-c))**0.5
    return s
最后修改:2021 年 01 月 10 日 04 : 10 PM