在没有重叠的情况下在2D空间中组织矩形的数据结构和算法

时间:2016-02-11 01:09:50

标签: algorithm data-structures 2d

我需要使用矩形来表示我的应用中的项目,并允许用户通过拖放操作将其重新排列到任何地方。该应用程序需要能够自动添加一个矩形旁边的其他矩形,如果删除一个矩形,则调整其他矩形,告诉哪个矩形在哪个旁边。矩形之间不应该有任何重叠。在拖动时,它应该可以帮助用户捕捉到最近的项目。

考虑到所有这些功能,哪种数据结构最适合我的项目?这些似乎是许多GUI应用程序中非常常见的功能。

我当前的解决方案是将所有这些解决方案放在一个列表中,使用边界框信息将项目添加到整个边界框旁边的合理位置。删除项目后,重新计算整个边界框。棘手的部分是当用户拖动项目或删除项目时,如何重新组织其余项目以使其保持合理的布局?

0 个答案:

没有答案