Graphical programming 在盒子中分布对象的算法(如InDesign、Illustrator、Draw!)

Graphical programming 在盒子中分布对象的算法(如InDesign、Illustrator、Draw!),graphical-programming,Graphical Programming,我有一组矩形及其相应的位置,还有一个大矩形,作为这些矩形的“边界框” 我想知道一种算法,它可以在矩形之间均匀地分配自由空间。有些人可能熟悉Adobe InDesign和类似面向布局的应用程序中的“分布间距”选项。那就是我要找的 我确实试过查找它,但我不熟悉“图形”算法术语,只尝试与“分布式”相关的术语主要会产生有关分布式计算的结果。因此,即使是要查找的算法名称或更好的术语也会有很大帮助 最后,该算法不需要与InDesign的算法严格相同:几乎任何在区域内“分布”对象的算法都可以正常工作。事实上,

我有一组矩形及其相应的位置,还有一个大矩形,作为这些矩形的“边界框”

我想知道一种算法,它可以在矩形之间均匀地分配自由空间。有些人可能熟悉Adobe InDesign和类似面向布局的应用程序中的“分布间距”选项。那就是我要找的

我确实试过查找它,但我不熟悉“图形”算法术语,只尝试与“分布式”相关的术语主要会产生有关分布式计算的结果。因此,即使是要查找的算法名称或更好的术语也会有很大帮助


最后,该算法不需要与InDesign的算法严格相同:几乎任何在区域内“分布”对象的算法都可以正常工作。事实上,由于我主要追求视觉吸引力,建议越多越好=D

你可以看看。A可能对你有用。

我想一定有办法把它表述为一个线性规划问题。使矩形的总面积最大化,但要确保它们永远不会作为限制相交。我想不出任何非线性的东西,所以应该有用。我唯一不确定的是,是否有可能生成一个限制列表,以防止矩形重叠。我无法向自己证明这是可能的或不可能的……这是我唯一能想到的。
希望有帮助。

有趣的链接!我可能会尝试它们,但我仍然对InDesign感兴趣,就像一个。有趣的问题是,但值得注意的是(特别是对于那些不熟悉布局应用程序的人来说),分布式间距功能可能会使元素重叠,这不会是一个问题。那么,您可以更改限制以控制一些重叠。(但它必须是一个线性重叠函数)如果你想让重叠成为一些非线性函数,也有非线性规划。IE:允许隐藏的像素=sqrt(总像素)…我不知道。我只是从头顶上摘下来的。有很多自由的线性和非线性解算器。