给定3个三角形点/顶点,这是计算三角形面积的正确方法吗?顶点永远不会为负值。

def triangle_area(tri):
    x1, y1, x2, y2, x3, y3 = tri[0][0], tri[0][1], tri[1][0], tri[1][1], tri[2][0], tri[2][1]
    return 0.5 * (((x2-x1)*(y3-y1))-((x3-x1)*(y2-y1)))

最佳答案

有必要在此公式中添加abs以避免出现负面积值(符号取决于方向,而不取决于正/负坐标)

是的,该公式是正确的,并且如果您具有顶点坐标,它可以实现最佳方法。它基于cross product属性。

def triangle_area(tri):
    x1, y1, x2, y2, x3, y3 = tri[0][0], tri[0][1], tri[1][0], tri[1][1], tri[2][0], tri[2][1]
    return abs(0.5 * (((x2-x1)*(y3-y1))-((x3-x1)*(y2-y1))))

关于python - 从3个顶点计算三角形面积的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55601927/

10-09 18:50