首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于文档的Graphviz

用于文档的Graphviz
EN

Stack Overflow用户
提问于 2008-11-19 22:23:08
回答 11查看 12.8K关注 0票数 17

我注意到doxygen使用graphviz库来创建图表。你有没有用过graphviz来生成文档?出于doxygen范围之外的文档目的而学习graphviz是否值得?还是坚持使用像Visio这样的标准数据建模包更好?

我理解它作为图形库的优点,但对于试图表示更复杂的UML (或类似的),它仍然值得研究吗?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-11-19 22:30:16

graphviz是一种非常简单的创建图形的语言/格式。如果这些功能对你来说足够了,我会推荐它(它是如此简单,我估计学习最多需要1个小时)。

票数 21
EN

Stack Overflow用户

发布于 2009-06-10 16:41:52

如果你只是在谈论如何创建继承/协作图,那么值得研究一下IDE,它会自动为你做这件事。对于从头开始或手动调整的文档,我使用OmniGraffle (因为我使用的是Mac),这是我强烈推荐的。

但是,GraphVizDOT可能非常方便,不仅用于文档,而且用于调试和代码理解,特别是对于数据结构。我通常不会手动编写DOT,但自动生成的DOT可能非常值得付出最少的努力。

我发现GraphViz非常有用的一个地方是用来理解和调试二进制搜索树算法。我开发了CHDataStructures.framework,这是一个开源的Objective-C框架,其中包括几种不同的BST。我实现了两个方法:父类上的-(NSString*)dotGraphString和每个子类上的-(NSString*)dotGraphStringForNode:。在大约30-40行代码(其中大部分位于CHAbstractBinarySearchTree.m的底部)中,我添加了迭代遍历二叉树并为其创建点表示的能力,包括平衡信息、将节点着色为红色或黑色等(稍加注意,您就可以轻松地表示空标记节点并以正确的排序顺序显示树)。

在我的测试代码中,在每次修改树之后,我调用-dotGraphString并将结果保存到一个.dot文件中,在那里停止一个断点,然后使用GraphViz打开该文件,它足够智能,可以在文件更新时重新呈现点图。这种方法使我更容易看到树中发生的事情,并在给定算法的实现中发现错误。这种方法可以非常容易地适应各种类型的数据结构,并且通常比仅仅为了可视化结构而创建UI要快得多,也更容易。

票数 12
EN

Stack Overflow用户

发布于 2008-12-16 00:09:44

Graphviz不会给你提供一个像Visio那样流畅的图形界面。然而,它将生成布局良好的图形。当我通过程序自动生成图形时,我发现它最有用(就像doxygen的情况一样)。

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

https://stackoverflow.com/questions/303608

复制
相关文章

相似问题

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