Java 图像库——JUNG(未完)

介绍
    是一个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<E>和Factory<V>的继承类
        用户通过鼠标决定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/

你可能感兴趣的:(Java 图像库——JUNG(未完))