当前位置: 首页 > 工具软件 > JUNG > 使用案例 >

java 图像库_Java 图像库——JUNG(未完)

贲培
2023-12-01

介绍

是一个Java开源项目,其目的在于为开发关于图或网络结构的应用程序提供一个易用、通用的基础架构。使用JUNG功能调用,可以方便的构造图或网络的数据结构,应用经典算法(如聚类、最短路径,最大流量等),编写和测试用户自己的算法,以及可视化的显示数据的网络图。

1.  图数据结构

ParseMultiGraph 和ParseDirectedGraph,这两个类支持参数化,可以传入自定义的 vertex和edge类

2.  图算法

两点间最短路径

最大流

3. 图形可视化

BasicVisualizationServer 是显示图形的基本类,实现接口 VisualizationServer,继承swing的JPanel 类,作为graph显示的画布

Layout接口和 edu.uci.ics.jung.algorithms.layout下的类 完成布局。

显示图形的最少内容(参考SimpleGraphView.java 类):

1.  graph数据结构

2.  layout的实现,如CircleLayout

3.  BasicVisualizationServer

4. 基本的GUI 组件,如 swing JFrame

为边和线着色、label

Renderer: 画edges, edges label ,vertext, vertex label ;RenderContext提供参数

参考  SimpleGraphView2.java

4. 获得交互

鼠标交互:根据赋值的mode 有不同的行为,包括 picking, zooming, transforming(rotation, shearing), translating(panning) , editing(adding/deleting nodes and edges)

zoom和transform graph

DefaultModalGraphMouse 提供 picking和transforming能力

参考: InteractiveGraphView1.java

根据 键盘输入改变mouse mode (key listeners)

参考: InteractiveGraphView2.java

图形编辑: add vertics和node 交互

EditingModalGraphMouse和 Factory和Factory的继承类

用户通过鼠标决定vertices的位置,则使用 StaticLayout

参考 EditingGraphView1.java

通过edge和vertext的属性菜单进行编辑

参考 GraphElements.java    PopupVertexEdgeMenuMousePlugin.java   VertextMenuListener.java  EdgeMenuListener.java   MenuPointListener.java  MyMouseMenus.java  DeleteEdgeMenuItem.java  DeleteVertexMenuItem.java  EditorMouseMenu.java  EdgePropertyDialog.java

参考网址:

http://jung.sourceforge.net/

 类似资料: