ノードやエッジの見た目
方法1.Visualization インスタンスにアクションを定義して一気に行う方法
Action は具体的には、以下を使用します。
ColorAction |
色の定義 |
FontAction |
フォントの定義 |
ShapeAction |
形の定義 |
SizeAction |
サイズの定義 |
StrokeAction |
線の定義 |
// ノードのサイズを 3 にします。
Visualization vis;
String action_tag;
ActionList action_list;
action_list=new ActionList();
action_list.add(new SizeAction(NODES,3));
vis.putAction(action_tag,action_list);
vis.run(action_tag);
方法2.Visualization インスタンスから VisualItem イテレータを取り出して個々の EdgeItem や NodeItem に対して定義する方法
Iterator it;
Visualization m_vis;
it=m_vis.items(EDGES);
while ( it.hasNext() ) {
EdgeItem ei=(EdgeItem)it.next();
ei.setStroke(new BasicStroke(1));
ei.setStrokeColor(ColorLib.rgb(0,255,0));
ei.setShape(new Integer(Constants.SHAPE_DIAMOND));
ei.setSize(5);
}
ノードの形を右向き三角にする場合の、Visualization インスタンスの作成例。
private makeVisualization(Graph g){
/*
Visualization クラスのインスタンスを作り、Graph データを与える。
*/
m_vis = new Visualization();
m_vis.addGraph(GRAPH, g);
/*
一度だけのアクション
*/
ActionList draw = new ActionList();
draw.add(new ColorAction(NODES, VisualItem.STROKECOLOR,
ColorLib.rgb(0,0,0)));
draw.add(new ColorAction(EDGES, VisualItem.STROKECOLOR,
ColorLib.rgb(0,0,0)));
draw.add(new ShapeAction(NODES,Constants.SHAPE_TRIANGLE_RIGHT));
/*
細かく描画しなおされるアクション
*/
ActionList animate = new ActionList(Activity.INFINITY);
animate.add(new RepaintAction());
animate.add(new ForceDirectedLayout(GRAPH));
/*
アクションの登録
*/
m_vis.putAction("draw", draw);
m_vis.putAction("layout", animate);
m_vis.runAfter("draw", "layout");
m_vis.run("draw");
}
ノードの形(SHAPE)
ShapeAction に指定できる値。
Constants.SHAPE_CROSS |
× |
Constants.SHAPE_DIAMOND |
ひし形 |
Constants.SHAPE_ELLIPSE |
円形 |
Constants.SHAPE_HEXAGON |
六角形 |
Constants.SHAPE_RECTANGLE |
四角形 |
Constants.SHAPE_STAR |
星型 |
Constants.SHAPE_TRIANGLE_DOWN |
下向き三角形 |
Constants.SHAPE_TRIANGLE_LEFT |
左向き三角形 |
Constants.SHAPE_TRIANGLE_RIGHT |
右向き三角形 |
Constants.SHAPE_TRIANGLE_UP |
上向き三角形 |
特別な値。
Constants.SHAPE_NONE |
形なし。設定できるのか要検証 |
Constants.SHAPE_COUNT |
使用できる形の数 |
最終更新:2009年02月01日 23:46