graphviz、DOT 格式和 cgraph 之间的关系?

问题描述 投票:0回答:2

我计划使用 DOT 图形表示格式来保存/序列化具有一堆属性的图形 - 不是为了绘制它们。

我了解了 GraphViz 的输入格式中的 DOT,所以我去了该网站,看看 DOT 是如何解析的,以及我是否可以使用解析器或轻松移植它。我找到的是这个文档:Using GraphViz as a Library。以下是关于 DOT 的内容:

cgraph 库为 DOT 表示的图提供了解析器。 使用它,可以轻松读取图表并查询所需的内容 使用 agget 或 agxget 的属性。有关这些的更多信息 功能,请参阅第 2.1.1 节。

第 2.1.1 节中说:

绘制图表的第一步是创建它。 要使用 Graphviz 布局软件,必须使用

cgraph
创建图形 图书馆。 我们可以通过两种主要方式之一创建图表,使用
agread()
agopen()
等等等等

...然后它描述了这些函数,这些函数采用 C 标准库

FILE*
char*
字符串。

我不太明白。看起来像

cgraph
只是 graphviz 存储库中的一个代码文件夹

  • cgraph 库读取 DOT 文件意味着什么?
  • cgraph
    是否作为独立库存在?
  • DOT 格式是否独立存在/是否独立于 graphviz 开发?如果是,它是否与
    cgraph
    代码独立相关?

请赐教。

graphviz dot
2个回答
3
投票
  1. 点文件只是一个遵循描述图形结构的文本文件。从历史上看,它是由 AT&T 与 GraphViz 一起开发的,当时“ma-bell”负责电话网络并开发晶体管、激光器等发明。但点文件现在可以被许多图形/网络软件包读取。

  2. cgraph 是 Graphviz 附带的库。您可以通过查找以 libcgraph 开头且通常位于名为 lib 的文件夹中的文件来找到它。它可以与 GraphViz 分开使用。它的代码位于您看到的文件夹中。

  3. 从技术上讲,点和cgraph是不同的东西。事实上,Graphviz 曾经使用过不同的库,并在过去的某个时间切换到了 cgraph 库。因此,您可以在 graphviz 网站上找到描述旧 graphviz 库的 pdf。

将 Graphviz 视为 IDE/包/可视化系统。 cgraph 是这个包中的一个工具。 Dot 是基于文本的系统的格式,用于存储和操作图形数据 - 特别适合可视化。


2
投票

关于你的第三个问题,DOT本身只是一种语法允许描述图形的语言。 各种软件包应用程序提供 IDE(例如 GraphViz)等功能以及以各种格式和布局渲染和保存图形的能力。

如果 DOT 语言的语法允许您充分描述您的图形,那么这是一个很好的方法,因为应用程序和渲染器的整个生态系统都可用,如果您决定使用它们的话。 它很简洁——正是出于这个原因,我将它用于系统文档(> 400 个服务器和 > 1000 个节点)。

© www.soinside.com 2019 - 2024. All rights reserved.