所以我有几个点想放在二维平面上。
我遇到的问题是每个点都有一个特定的距离,它必须与其他每个点放置。我想知道是否有人知道任何方法可以为所有这些点制定满足距离要求的功能布局?
(例如,点 a、b 和 c。a 与 b 的距离必须为 2,与 c 的距离为 3,并且 b 和 c 的距离必须为 4)。
写出来我意识到必须有一些不可能的变化。然而,距离并不是一成不变的,可能会略有不同。
所以我有几个点想放在二维平面上。
我遇到的问题是每个点都有一个特定的距离,它必须与其他每个点放置。我想知道是否有人知道任何方法可以为所有这些点制定满足距离要求的功能布局?
(例如,点 a、b 和 c。a 与 b 的距离必须为 2,与 c 的距离为 3,并且 b 和 c 的距离必须为 4)。
写出来我意识到必须有一些不可能的变化。然而,距离并不是一成不变的,可能会略有不同。
这个解决方案可能有点矫枉过正,但它会很好地工作(另外,它很酷):
从粒子模拟的角度考虑这个问题:将点(以下称为粒子)随机放到 2D 平面上,然后执行质量弹簧模拟以在平面中规则地分布粒子。为此,请使用弹簧连接相邻粒子(4 或 8 个连接的邻居),然后将点之间的所需距离定义为每个弹簧的静止长度。
相对距离大于此静止长度的粒子将受到吸引,而相对距离小于静止长度的粒子将受到排斥。对物理系统进行几次迭代,您应该观察到粒子有规律地间隔开,就像电线上的鸟(但在 2D 中)。
谷歌“质量弹簧模拟”和“胡克定律”。这个链接很好,这些链接也很好:链接、链接、链接和链接。这些搜索产生一百万次点击,您甚至可以找到源代码。
正如您可能猜到的那样,我确实认为这是一个编程问题;)