如何将5个点均匀分布到不规则形状上?

时间:2009-09-10 17:53:36

标签: algorithm math geometry

这是我要解决的问题:

我的形状不规则。如何在这个形状上均匀分布5个点,使每个点之间的距离相等?

4 个答案:

答案 0 :(得分:8)

大卫说这是不可能的,但事实上左边的领域有一个答案:只需将你的所有积分放在彼此之上!它们与所有其他点的距离都相同:零。

事实上,无论输入形状如何,这是唯一具有解决方案的算法(即所有成对距离都相同)。

我知道这个问题要求“均匀”地提出要点,但由于这没有正式定义,我希望这只是试图解释“所有成对距离是相同的”,在这种情况下我的回答是“均匀”

答案 1 :(得分:6)

这在数学上是不可能的。它只适用于一小部分基本形状。

但是您可以尝试一些解决方案:

  1. 分析方法。从点P0开始,在P0周围创建一个球体并将其与基本形状相交,为您提供一组曲线C0。然后在C0的某处创建另一个点P1。再次,在P1周围创建一个球体并与C0相交,给你一组点C1,你的第三个点P2将是C1中的一个点。等等等等。这种方法可以保证距离约束,但也很大程度上取决于初始条件。

  2. 迭代方法。基本上是形式发现。您可以在对象上创建一些点,并在共享距离约束的点之间创建弹簧。然后你解决弹簧力并相应地移动你的点。这很可能会使它们远离基座形状,因此您需要将它们拉回基座形状。重复直到您的点不再移动或直到满足距离约束的范围内。

  3. 采样方法。将基础几何体转换为体素空间,并开始挖出所有太靠近新插入点的体素。这可以确保你永远不会得到两个点太近,但它也会受到容忍(可能是性能)问题的困扰。

  4. 如果您可以提供有关几何体性质和约束条件的更多信息,则可以得到更具体的答案。

答案 2 :(得分:1)

对于将来在这里绊倒的人们,请查看Lloyd's algorithm

enter image description here

答案 3 :(得分:0)

将5个点彼此等距放置的唯一方法(除了使它们穿过原点的简单解决方案之外)是在4维以上的空间中。在数学上,不可能在3D中拥有5个等距的对象。 在3D模式中,最多可以有四个,而且形状是四面体。