变换以消除共线点

发布于 2024-09-03 11:04:11 字数 78 浏览 5 评论 0原文

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

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

我可以对这些点应用任何变换来消除共线性吗?

I'm writing a program to solve a geometry problem.

My algorithm doesn't treat collinear point very well.

Is there any transformation I can apply to the points to get rid of the collinearity?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你与清晨阳光 2024-09-10 11:04:11

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

消除共线性的一种方法是
只是给每个添加一些噪音
点,即 (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>

Then I think that noise might actually be the solution. As I wrote in the comment above

One way to remove colinearity is
simply to add some noise to each
point, i.e. (x, y, z) ↦ (x +
0.01*(random() - 0.5), y + 0.01*(random() - 0.5), z + 0.01(random() - 0.5)) if random() returns a random real number in [0, 1[.

樱娆 2024-09-10 11:04:11

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

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

共线性条件为:

       x1  y1  1
  det  x2  y2  1  = 0
       x3  y3  1

If you are working with a lot of point sets, adding noise to every set may solve the problem in one set, but create it in another.

If that is the case, you can test the colinearity before applying the noise.

The colinearity condition is:

       x1  y1  1
  det  x2  y2  1  = 0
       x3  y3  1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文