我计划使用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
is just a folder of code within the graphviz repository。
cgraph
是否作为独立库存在?cgraph
代码独立相关?请赐教。
答案 0 :(得分:1)
点文件只是遵循描述图形的结构的文本文件。从历史上看,它是由AT&T与GraphViz一起开发的,当时是由“ ma-bell”负责电话网络,并开发了晶体管,激光等发明。但是,点文件现在可以由许多图形/网络软件包读取。 >
cgraph是Graphviz随附的库。您可以通过查找名为libcgraph的文件找到该文件,该文件通常位于名为lib的文件夹中。可以与GraphViz分开使用。它的代码在您看到的文件夹中。
从技术上讲,点和图形是分开的东西。实际上,Graphviz曾经使用其他库,并在过去的某个时间切换到cgraph库。因此,您可以在graphviz网站上找到描述较旧的graphviz库的pdf。
将Graphviz视为IDE /软件包/可视化系统。 cgraph是此软件包中的一种工具。点是一种用于存储和处理图形数据的基于文本的系统的格式-特别适合于可视化。
答案 1 :(得分:0)
对于你的第三个问题,DOT本身只是一种语法,它的语法可以用来描述图形。各种软件包应用程序提供IDE(例如GraphViz)等功能,以及以各种格式和布局呈现和保存图形的功能。
如果DOT语言的语法允许您充分描述图形,那么这是一个很好的方法,因为应用程序和渲染器的整个生态系统可用,如果您决定使用它们。而且它很简洁 - 出于这个原因,我将它用于系统文档(> 400服务器和> 1000个节点)。