我正在尝试用Java创建一个类,它将扩展另一个名为Graph的类。
图表类的轮廓如下:
我想知道是否有可能使用我制作的图表类在Java中绘制一个非常基本的力导向无向图。我希望我的图表在视觉上令人愉悦!
如果是这样,有人能指出我正确的方向吗?
答案 0 :(得分:0)
你的问题到底是什么?如果你问你的类是否包含足够的信息以允许应用基于力的布局,那么显然答案是否定的:你至少需要表示节点的位置^^(例如使用额外的x和y节点属性)。
关于算法本身,您是对自己实现它的过程感兴趣,还是只对结果感兴趣:以一种很好的方式显示图形?在前一种情况下,您可以先看看(Fruchterman & Reingold '91)或(Kamada & Kawai '89)等开创性论文。两篇文章都明确给出了提出的算法。在后一种情况下,您可以查看现有的实现,其中有很多实现。也许对你来说最方便的是Gephi与布局相关的类,因为这个开源软件(available on GitHub)本身就是用Java编写的。
在任何情况下,您还可以查看与此主题相关的其他SO帖子,例如Kamada & Kawai graph layout algorithm?或Force-directed graphing。