【问题标题】:Visualize graphs in java在java中可视化图形
【发布时间】:2020-04-10 03:01:03
【问题描述】:

我目前正在从事一个大学项目,以在 java 中实现简单的图形算法 (https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) 我正在努力寻找一个简单的解决方案来将我创建的图形导出到图像文件(即 .png)中

我已经看过 GraphViz 和 GraphStream 之类的工具,但它们似乎更专注于可视化自己的代码以创建图表。

有没有人知道一个简单的库或者甚至可以解释我在图像文件中生成的输出的外部工具?如果可能的话,一些轻量级且易于实现的东西。

[My code] ---> [Output] ---> [What I'm in searching] ---> [Image File]

【问题讨论】:

  • 你的输出语言是什么样的?
  • 暂时没有输出。我的想法是首先收集所有“组件”,然后作为我的第二步开始工作。

标签: java graphviz graphstream


【解决方案1】:

如果您使用 Graphviz Dot 语言生成输出,您可以使用 dotty 将其可视化,并使用 dot 程序将其导出为 PNG 或其他图像格式。 Dot 语言非常简单,例如这里有一个有向图,有 3 个节点组成一个循环,第三个节点有一个自边。

digraph {
A -> B
B -> C
C -> A
C -> C
}

这是它在dotty中的渲染方式:

【讨论】:

    【解决方案2】:

    您的要求很笼统,但这里有一些答案:

    • 如果您希望“搜索”同时放置节点和边,则上述答案有效
    • 如果您想自己放置节点,graphviz 支持这一点 - 在常见问题解答中搜索“已经拥有节点的所有坐标”。 dot -Tdot yourinputfile 将给出您需要创建的输出示例。您可以跳过边缘的 pos
    • 如果您想同时放置节点和边,请参见上文,但在边上包含 pos 并使用 neato -n2(边始终是样条曲线,但边是直边很容易计算)
      • Java 没有可以使用的图形例程吗?
    • 如果您想定位节点和边,但不喜欢 graphviz 解决方案,请尝试 dpic (https://ece.uwaterloo.ca/~aplevich/dpic/),它的级别略低,可提供更多控制权

    祝你好运

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 1970-01-01
      • 2012-06-17
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      相关资源
      最近更新 更多