首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有输入和输出端口的GraphStream节点

具有输入和输出端口的GraphStream节点
EN

Stack Overflow用户
提问于 2015-03-31 11:01:11
回答 2查看 1.3K关注 0票数 1

我想在GraphStream中建模一个图并使用它的查看器呈现它,但是我的节点需要有不同的输入和输出端口(最好分别位于节点框的左侧和右侧),边缘应该与这些端口连接,而不是节点中心。

这在GraphStream中是可能的吗?如果没有,是否还可以使用另一个Java库?我知道GraphViz Dot允许这样做,但是我不希望通过命令行来调用它,因为它引入了一个不属于我的项目的外部依赖项。

编辑:我想呈现的那种东西的示例(但是对于一个非常不同的域):

我非常愿意自己进行渲染,但当然我仍然需要节点和边缘的路由和坐标。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 12:38:34

GraphStream中还没有在节点上声明锚、句柄或端口的方法。

但是,由于您希望在节点的左侧和右侧收紧边缘,因此您可能希望尝试使用"freeplan“CSS属性。参见下面的示例,特别是图表上的“样式表”属性:

代码语言:javascript
复制
Graph graph = new SingleGraph("FreePlane");
System.setProperty("org.graphstream.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer");
graph.display();
graph.setAttribute("stylesheet", "node { "
        + "     shape: rounded-box; "
        + "     padding: 5px; "
        + "     fill-color: white; "
        + "     stroke-mode: plain; "
        + "     size-mode: fit; "
        + "} "
        + "edge { "
        + "     shape: freeplane; "
        + "}");
graph.addAttribute("ui.quality");
graph.addAttribute("ui.antialias");

Node a = graph.addNode("A");
Node b = graph.addNode("B");
graph.addEdge("AB", "A", "B");
Node c = graph.addNode("C");
graph.addEdge("BC", "B", "C"); 

a.addAttribute("ui.label", "node A");
b.addAttribute("ui.label", "node B");
c.addAttribute("ui.label", "node C");

会给你这样的东西:

票数 2
EN

Stack Overflow用户

发布于 2016-11-18 12:07:48

我无法用图流实现这一点,但是其他框架支持这样的功能,如:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29367092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档