我有许多矩形元素,我想将它们放置在二维空间中。我计算每个元素的理想位置。现在我的问题是许多元素重叠,因为理想位置经常集中在一个区域。我想尽可能避免重叠(但不一定是完美的)。我该怎么做?
我听说物理模拟适用于此 - 对吗?谁能提供示例/教程?
顺便说一句:我正在使用 XNA,如果您知道任何可以完成这项工作的 .NET 库,请告诉我!
最佳答案
物理引擎的一种使用方式:
在每个矩形上放置正电荷(或某种排斥力)并模拟力和运动。此外,正如 Eyal 友善地指出的那样,您还需要一些吸引力来防止它们漂走。这可以通过 Spring 建模(同样如 Eyal 所指出的)。它们将希望以某种可能涉及非重叠矩形的平衡结束。
我相信类似的想法(基于力的启发式方法)被用于确定图形的美观布局(节点和边缘布局)。
免责声明:我自己没有用过。
希望对您有所帮助!
关于algorithm - 没有重叠的定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3065033/