Próbuję narysować wykres zależności między plikami nagłówkowymi C za pomocą graphviz.Etykiety krawędzi GraphViz
Zasadniczo, co robię jest rejestrowanie wszystkich #include, które pojawiają się i warunek (warunki #if mam na myśli). Jeśli plik zawiera inny, staje się jego ojcem na wykresie, a potencjalnym warunkiem jest etykieta krawędzi.
Otrzymuję dość duży wykres. Problem wynika z etykiet skrajnych, które są zawsze poziome (nie można tego zmienić) i zawsze wydają się być wyrównane do lewej (próbowałem labelloc i labeljust, ale nic nie zmienia.) Jaki jest właściwy sposób "centrowania"? Aby uniknąć tego problemu, próbowałem wyrenderować warunki jako węzły.Jeśli Ah zawiera Bh pod warunkiem ANSI, istnieje łącze od Ah do ANSI, a następnie od ANSI do Bh .. To wygląda OK, ale problem polega na tym, że jeśli Ch obejmuje Dh w tym samym stanie, zobaczyłbym link od Ah do ANSI, jeden od do Ch do ANSI, jeden z ANSI do Bh i jeden z ANSI do Dh. nie wiem, czy to jest Ah, czy Ch, które obejmuje Bh. Czy istnieje sposób określenia czegoś takiego jak przejście przez węzły (link od Ah do Bh, który przechodzi pod ANSI może wykorzystujący przezroczystość).
używasz domyślnego rankdir (= TB?) Jak długo etykiety brzegowe? –
Tak, używam domyślnego rankdir ... Etykiety mogą być dość długie, jeśli masz kilka opcji konfiguracji połączonych. To też jeden problem (ale mógłbym dodać nową linię z \ l lub \ n ..) – LB40