这是我要解决的问题:

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

有帮助吗?

解决方案

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

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

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

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

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

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

其他提示

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

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

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

将5个点彼此相等的唯一方法(除了通过原点放置它们的简单解决方案之外)是在4维空间中。在数学上不可能在3D中具有5个相等距离的物体。 四是你在3D中可以拥有的最多,那个形状是四面体。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top