1

我有一个程序,允许用户在大小为 1000 x 750 的 JFrame 上绘制顶点和边。现在我需要使用四叉树根据单个象限中有多少个顶点来划分输入图。如果有人能指出如何实现这一目标的正确方向,我将不胜感激?

附加信息:我有一个 Edge 类,它存储:源(顶点)、目标(顶点)和权重。我有一个 Vertex 类,它存储:名称、x 坐标、y 坐标和 Ed​​ge[] 相邻列表。我还有一个 Graph 类,它存储两个 ArrayList:边和顶点。

4

2 回答 2

5

我最近实现了代码,应该可以解决您的问题。在我最近的博客文章中可以免费下载。空间分解的四叉树,Java 实现http://kirstywilliams.co.uk/blog/2012/08/quadtrees-java-implementation/

于 2012-08-16T16:49:04.463 回答
1

更多的四叉树实现都是 apache 许可的:

但是,如果您已经在内存中有一个连通图,您可以创建一个内存效率更高(但也有点复杂)的解决方案。零件在此处实现,更多详细信息可在此处获得。

另一个有趣的 repo(但我认为是 neo4j 本身是 AGPL),其中包含一些空间集合。

于 2012-08-30T10:30:38.860 回答