Geometry 各点之间必须保持一定距离的最佳位置

Geometry 各点之间必须保持一定距离的最佳位置,geometry,Geometry,我有几个点要放在二维平面上 我的问题是,每个点都有一个特定的距离,它必须放置在其他点之间。我想知道是否有人知道如何为所有这些点设计出满足距离要求的功能布局 (例如,点a、点b和点c.a与b的距离必须为2,与c的距离必须为3,且b和c的距离必须为4) 写下这些,我意识到一定有一些不可能的变化。但是,距离不是一成不变的,可能会略有变化。此解决方案可能有些过分,但它会很好地工作(另外,它很酷): 从粒子模拟的角度考虑问题:将点(以下称为粒子)随机放置到二维平面上,然后执行质点弹簧模拟以在平面中规则分布

我有几个点要放在二维平面上

我的问题是,每个点都有一个特定的距离,它必须放置在其他点之间。我想知道是否有人知道如何为所有这些点设计出满足距离要求的功能布局

(例如,点a、点b和点c.a与b的距离必须为2,与c的距离必须为3,且b和c的距离必须为4)


写下这些,我意识到一定有一些不可能的变化。但是,距离不是一成不变的,可能会略有变化。

此解决方案可能有些过分,但它会很好地工作(另外,它很酷):

从粒子模拟的角度考虑问题:将点(以下称为粒子)随机放置到二维平面上,然后执行质点弹簧模拟以在平面中规则分布粒子。为此,请使用弹簧连接相邻粒子(4个或8个连接的相邻粒子),然后将点之间的所需距离定义为每个弹簧的静止长度

相对距离大于静止长度的粒子将受到吸引,而相对距离小于静止长度的粒子将受到排斥。迭代物理系统几次,你应该观察粒子,让它们有规律地分开,就像电线上的鸟一样(但在2D中)

谷歌“质量弹簧模拟”和“胡克定律”。很好,这些也是:,和。这些搜索产生了一百万次点击,你甚至可以找到源代码


正如你猜的那样,我认为这是一个编程问题;p> 不是真正的编程问题,数学有它自己的交流。也就是说,根据您的需求,可能有无限的解决方案,也可能没有。写出完整的问题。哈,非常感谢你,我明天会准备一个实现。先生,您得到了正确的答案。我回到了我的实现,我记得我发现这个参考很有用:。让我们随时了解您的进展情况:这有很多“有趣”的方面,比如刚度常数、时间步长、集成方法等等。所以我设法完成了我的实现。它是Python和2D的。工作也很好,只是想再次表示感谢。C++示例特别有用(总是找到工作示例是学习的最好方法)。