虚三角区

时间:2012-10-24 12:42:14

标签: 3d geometry area

我正在尝试计算3D空间中三角形的面积,而我正在使用Heron的公式。

我得到了一个虚构的结果,真实部分为0。

你知道这意味着什么吗?

我试图确定三角形的点是否为共线(三角形0的区域)

谢谢

3 个答案:

答案 0 :(得分:2)

如果三边不形成三角形(三角不等式不满足),苍鹭的公式会失败。

请注意,使用浮点数时,不能测试零,因为浮点数由于舍入误差几乎不会为零。

检查共线性的另一种方法:

要确定A,B,C是否共线,计算叉积(A-B)x(A-C)。如果其长度小于固定的ε,则这些点在一定的公差范围内是共线的。如果您的输入是整数,则可以测试精确的零。

如果交叉产品返回非零结果,则其长度是三角形区域的两倍。

答案 1 :(得分:1)

对于非常小的角度的三角形,Heron公式实际上是不稳定的 This link has the stable alternative to the formula 其中a≥b≥c

答案 2 :(得分:0)

这意味着您在计算中出错了。 3D空间中的任何三个非共线点形成三角形。当插入Heron的公式时,该三角形边的长度将产生大于0的实际面积。在数学上,没有其他结果是可能的。如果三个点共线,那么该区域将为0。

从调试的角度来看,我会说你应该检查插入Heron公式的三个长度。如果他们失败了Triangle Inequality,那么你就错误地计算了它们。如果它们通过,那么你就没有正确应用Heron的公式。