2

我正在编写一个程序来解决几何问题。

我的算法不能很好地处理共线点。

我可以对这些点进行任何转换以消除共线性吗?

4

2 回答 2

5

然后我认为噪音实际上可能是解决方案。正如我在上面的评论中所写

消除共线性的一种方法是简单地向每个点添加一些噪声,即 (x, y, z) ↦ (x + 0.01*(random() - 0.5), y + 0.01*(random() - 0.5), z + 0.01(random() - 0.5)) 如果 random() 返回 [0, 1[ 中的随机实数。

于 2010-05-30T12:22:26.690 回答
0

如果您正在处理大量点集,则向每个集添加噪声可能会在一个集中解决问题,但在另一个集中创建它。

如果是这种情况,您可以在应用噪声之前测试共线性。

共线性条件为:

       x1  y1  1
  det  x2  y2  1  = 0
       x3  y3  1
于 2010-05-31T20:25:37.967 回答