Pull to refresh

Comments 17

Я в своем проекте сппр так же использую Graphviz. Это позвояет визуализировать логическую структуру. Так же следует упомянуть о других возможностях. Это использование svg формата. Что позволяет визуализировть в браузерах (более удобно) и возможностях гипер-ссылок. Что позволяет сделать отображение еще и интерактивным.

решение интересное, правда риски всё теже — разъедется содержимое псевдокода с реализацией при активной разработке
Согласен. Актуальность комментариев в коде тоже надо поддерживать.

Так же есть возможность в блоке данных выводить дополнительную информацию. Это могут быть и комментарии. Визуально выглядит как два блока текста разделенных чертой горизонтальной или вертикальной. Правда не проверял наифигурах отличных по форме от прямоугольных.

Мне кажется это не совсем так. Есть два типа блока, с помощью которых можно выводить данные в виде таблицы: shape=record|Mrecord. Отличие второго от первого — скругленные наружные углы. Больше ни в каких типах блоков сделать столбцы/строки нельзя.
Я для этого сделал так чтобы при сборке диаграммы автоматически актуализировались. Фактически, они каждый раз пересоздаются по актуальному коду.
Часто блок-схемы (Activity Diagram) составляю с помощью plantuml, который для некоторых случаев использует graphviz под капотом.

У plantuml, по-моему, язык попроще.

Такой текст:

@startuml
start

if (Graphviz installed?) then (yes)
  :process all\ndiagrams;
else (no)
  :process only
  __sequence__ and __activity__ diagrams;
endif

stop

@enduml


Отрисует такую диаграмму:

image

Так же есть плагины для использования в IDE от Jetbrains.

Еще пара-тройка примеров
image
image
image
image
image
Используем Graphviz + PlantUML для авто генерации диаграмм классов и для составления документации (Sequence Diagram). Очень удобно для составления документации по проекту.
Действительно рисует схемы. Если не секрет, поделитесь параметрами для увеличения разрешения изображения. Что-то векторных форматов в коммандной строке не обнаружил.
Он рисует в векторе. Просто потом вектор сохраняется в растровый формат (это уже зависит от настроек).
Список поддерживаемых форматов можно посмотреть здесь: http://www.graphviz.org/content/output-formats
Как минимум есть svg, ps, eps и pdf. Я обычно для самодостаточных схем использую pdf.
Для явного задания размера и dpi есть -Gsize и -Gdpi.
Обратите внимание, что для точного задания размера нужно добавить восклицательный знак в конце: -Gsize=<width>,<height>!.

Вам удавалось разобраться как в graphviz поворачивать прямоугольники на произвольный угол не искажая их формы?

Аттрибут orientation не подходит?



digraph {
  layout = neato;
  node[shape = note];

    0[orientation =   0];
   30[orientation =  30];
   60[orientation =  60];
   90[orientation =  90];
  120[orientation = 120];
  150[orientation = 150];
  180[orientation = 180];

  210[orientation = 210];
  240[orientation = 240];
  270[orientation = 270];
  300[orientation = 300];
  330[orientation = 330];
  360[orientation = 360];

  0 -> 30 -> 60 -> 90 -> 120 -> 150 -> 180 -> 210 -> 240 -> 270 -> 300 -> 330 -> 360 -> 0;

}

Нет не подходит.

Вы же сами видите, что фигуры исказились.

Вместо прямоугольников появились какие-то параллелограммы.

Sign up to leave a comment.

Articles