我正在使用 jung 库来绘制我的抓取,所以我想知道是否有任何方法可以创建不同形状的顶点而不是创建椭圆。例如,我想要八角形。这是我设置形状的方式:
Transformer<String,Shape> vertexSize = new Transformer<String,Shape>(){
@Override
public Shape transform(String str) {
Ellipse2D circle = new Ellipse2D.Double(-5, -5, 10, 10);
if(drugnames.contains(str)){
return AffineTransform.getScaleInstance(3,3).createTransformedShape(circle);
}
else{
return AffineTransform.getScaleInstance(1,1).createTransformedShape(circle);
}
// TODO Auto-generated method stub
}
};
VisualizationViewer.getRenderContext().setVertexShapeTransformer(vst)
其中 vst 是Transformer<V, Shape>
。
AbstractVertexShapeTransformer can do a lot of the heavy lifting for you.
有关这些操作的示例,请参见PluggableRendererDemo
(源是发行版的一部分)。