【发布时间】:2018-02-06 00:20:48
【问题描述】:
我正在使用 Jung 构建一棵树,它的边箭头必须倒置。也就是说,不是拥有父母 -> 孩子,而是拥有孩子 -> 父母。
我无法更改树形布局结构,因为我正在使用相应的方法进行进一步分析 - 我只需要此功能用于视觉目的。
我在我的 Eclipse 项目中使用 jung 库作为依赖项,无法编辑直接提供的文件。我已经尝试扩展 BasicEdgeRenderer 类(并且还尝试创建此类的修改副本)以覆盖 drawSimpleEdge() 方法并反转顶点,但这会导致无数我似乎无法修复的错误。
然后我考虑过使边缘无方向并在所需点手动添加箭头,但到目前为止没有成功!
任何关于如何实现这一点的帮助将不胜感激!
编辑:我添加了与图形显示相关的代码部分 - 树具有节点类型的自定义节点的顶点和字符串类型的边。
Layout<Node, String> newLayout = new TreeLayout<Node, String>((Forest<Node, String>) G);
VisualizationViewer<Node,String> vViewer = new VisualizationViewer<Node,String>(newLayout);
vViewer.getRenderContext().setVertexLabelTransformer(
new Transformer<Node, String>(){
public String transform(Node v){
return v.getLabel();
}
});
vViewer.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);
vViewer.getRenderContext().setEdgeShapeTransformer(new EdgeShape.Line<Node,String>());
vViewer.getRenderContext().setVertexFillPaintTransformer(vertexPaint);
vViewer.setBackground(Color.WHITE);
【问题讨论】:
-
欢迎来到 StackOverflow!您可能需要考虑添加最新代码,以便我们为您提供帮助。
-
供我自己将来参考:我们 (JUNG) 应该考虑让创建“uptrees”变得更容易,其中边缘朝着相反的方向,如您所愿。这可以说是数据模型不是您想要的问题,确切地说不是可视化系统的问题。