我正在寻找一种算法来为2D区域中不同大小的非重叠四边形生成随机位置。一个例子可以是:
四边形的随机大小介于 a和b b之间,它们与xy坐标平行。我正在使用JQuery(javaScript)。
- 如果我为每个矩形生成两个独立的随机数(对于x和y坐标),我必须检查此位置中的新矩形是否与其他现有矩形不重叠。如果是,则忽略此选择并生成一对新数字(新位置)。因此,也许这不是一个好的算法 -
有人有什么建议吗? 感谢。
答案 0 :(得分:1)
您可以使用四叉树或kd树来细分曲面。空间索引也可以起作用。寻找空间填充曲线和空间索引以及四键或geohash如何找到象限。也许r树也很好,因为空间填充曲线非常复杂。这是bing map quadkey示例:http://msdn.microsoft.com/en-us/library/bb259689.aspx。然后你可以随机使用广度优先搜索。