prefuse 给节点以及边赋予权值

来源:互联网 发布:电视虚拟鼠标软件 编辑:程序博客网 时间:2024/05/16 11:33

上一篇说明了 怎么利用prefuse创建一个简单的点边图并给节点添加监听事件,但在社会关系中我们需要知道人与人之间的关系是紧密地还是疏远的关系或者该节点在这个图中所占的作用比例有多大等等,那么我们该如何给节点以及边赋役权值呢?针对这个问题纠结了好久,后面在看prefuse APi时突然看到了NodeItem 类和EdgeItem 类,这两个对象分别继承了 visualItem ,Node 和visualItem,Edge也就是说俄噢们可以获得节点以及和它对应的边进行更改我们所需要赋予的权值。


给节点赋役权值大小

        VisualGraph vg = vis.addGraph("graph", graph);
        for (int i = 0; i < vg.getNodeCount(); ++i) {
int txt = vg.getNode(i).getInt("id");
NodeItem item = (NodeItem) vg.getNode(i);
if (txt == 0) {
item.setSize(2);
}
}

给边赋予权值(宽度)

for (int i = 0; i < vg.getEdgeCount(); ++i) {
EdgeItem a = (EdgeItem) vg.getEdge(vg.getNode(0), vg.getNode(2));
EdgeItem b= (EdgeItem) vg.getEdge(vg.getNode(2), vg.getNode(0));
b.setSize(2);
a.setSize(3);

}

上面只赋予了节点的大小和边的粗细  有关其它权值也可以根据这个赋予


0 1