我正在编写一个解决几何问题的程序。
我的算法不能很好地处理共线点。
我是否可以应用任何转换来消除共线性?
答案 0 :(得分: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 [。<]中返回一个随机实数。 / p>
答案 1 :(得分:0)
如果您正在使用大量的点集,那么在每个集合中添加噪声可以解决一组中的问题,但可以在另一组中创建它。
如果是这种情况,您可以在应用噪音之前测试共线性。
共线条件是:
x1 y1 1
det x2 y2 1 = 0
x3 y3 1