1

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

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

你知道这意味着什么吗?

我正在尝试确定三角形的点是否共线(三角形 0 的区域)

谢谢

4

3 回答 3

2

如果三个边不形成三角形(不满足三角形不等式),Heron 公式将失败。

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

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

要确定 A、B、C 是否共线,请计算叉积 (AB)x(AC)。如果它的长度小于一个固定的 epsilon,那么这些点在一定的公差范围内是共线的。如果您的输入以整数形式给出,您可以测试一个精确的零。

如果叉积返回非零结果,则其长度是三角形面积的两倍。

于 2012-10-24T12:54:29.537 回答
1

Heron 的公式实际上对于具有非常小角度的三角形是不稳定的 此链接具有公式的稳定替代方案, 其中 a ≥ b ≥ c

于 2020-04-20T11:58:56.240 回答
0

这意味着您在计算中犯了错误。3D 空间中任意三个不共线的点组成一个三角形。该三角形边的长度,当代入 Heron 公式时,将产生一个大于 0 的实面积。在数学上,不可能有其他结果。如果这三个点共线,则面积将为 0。

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

于 2015-04-14T01:07:04.120 回答