2015-10-06 3 views
3

До сегодняшнего дня я использовал «древнюю» версию (1.4.7) doxygen (+ dot) и обычно рисовал графики с вертикальной ориентацией, например.
enter image description hereDoxygen: Можно ли контролировать ориентацию графиков зависимостей?

.. но с более недавним (1.8.6, как распространяются через Ubuntu), графики, кажется, быть горизонтальными, т.е.
enter image description here

Проблема с горизонтальной ориентацией, что многие из графики идут хорошо с правого края окна, поэтому вам нужно выполнить прокрутку «2D», чтобы увидеть данные.

Я просмотрел веб-страницы доксигена, но не мог видеть, есть ли возможность рассказать точку, чтобы нарисовать их с вертикальной ориентацией. Кто-нибудь знает, существует ли такой вариант?

ответ

4

Существует аналогичный вопрос, поставленный в 2014 году, который я дубликата с ответом: Flip doxygen's graphs from top-to-bottom orientation to left-to-right

Посмотрев на то же самое себя и не найдя ничего, лучшее, что я могу предложить хак с помощью графика атрибута rankdir.

Шаг 1) Убедитесь, что Doxygen сохраняет файлы точек. Поместите DOT_CLEANUP = NO в свой файл конфигурации.

Шаг 2) найдите свои точечные файлы, созданные Doxygen. Должно быть в форме * __ incl.dot. для шагов ниже я буду обращаться к этому файлу как <source>.dot

Шаг 3a) Допуская файл точечного было явно не указать rankdir (как правило, это туберкулез»по умолчанию), регенерировать выход с этой командой.

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

Шаг 3b) Если по какой-то причине rankdir указан в файле дот, перейдите в файл и добавьте rankdir="LR" (по умолчанию они rankdir установлен в "TB").

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

Тогда реген введите 0:

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

Необходимо выполнить повтор после каждого запуска Doxygen. Пакетный файл может оказаться полезным, особенно если вы хотите обработать все файлы. Для этапа 3b пакетная замена текста выходит за рамки этого ответа :). Но здесь, кажется, хороший ответ:

How can you find and replace text in a file using the Windows command-line environment?

+0

Спасибо. Поскольку я создаю все в Linux с помощью GNU make, запуск «пакетного типа» должен быть неэмиссионным. –

+0

Спасибо. Я сделал оболочку сценария для самой «точки», которая называет настоящую «точку» как «dot -Grankdir =» LR »- и, похоже, она работает. – vines

Смежные вопросы