将doxygen的图表从上到下翻转为从左到右的方向

4
使用1.8.5版本的doxygen,"包含" 和 "被包含" 的doxygen图形是从上到下嵌套深度递增创建的。
由于大多数图形都是浅层的,并且具有许多节点,因此导致图形非常宽,出现了丑陋的水平滚动条。是否有一种方法可以指导doxygen以左到右的方式创建这些图形,就像它创建调用者/调用图一样?
我知道 graphviz/dot 支持此功能,但找不到一种方法告诉doxygen我的偏好。

在我看来,恐怕在doxygen内部没有开关可以做到这一点。也许可以通过一些sed处理来向生成的dot文件添加一个rotate属性? - kebs
1个回答

2

最近有一个类似的问题被问到,我将进行重复回答: Doxygen:是否可以控制依赖图的方向?

在我自己寻找并找不到内容后,我能提供的最好方法是使用graph属性rankdir进行破解。

第一步)确保Doxygen保留了点文件。在配置文件中加入DOT_CLEANUP = NO。

第二步)找到Doxygen生成的点文件。应该以__incl.dot的形式存在。以下步骤我将称这个文件为<source>.dot

第三步a)假设点文件没有明确指定rankdir(通常默认为TB),则使用此命令重新生成输出。

dot -Grankdir="LR" -Tpng -o<source>.png -Tcmapx -o<source>.map <source>.dot 

第三步b) 如果在dot文件中指定了 rankdir,请进入文件并添加rankdir="LR"(默认情况下,rankdir设置为"TB")。

digraph "AppMain"
{
  rankdir="LR";
...

接着使用以下命令重新生成输出:

dot -Tpng -o<source>.png -Tcmapx -o<source>.map <source>.dot 

每次运行Doxygen后都需要重新执行此操作。如果要处理所有文件,则批处理文件可能会很方便。对于步骤3b,批量替换文本不在此答案的范围内:)。但是这里似乎有一个好的答案:

如何使用Windows命令行环境在文件中查找和替换文本?


谢谢Michael。有个hack总比没有好。 - Jens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接