Graphviz
Remélem nem untatom a közönséget egy kissé technikai jellegű posttal. Akinek nem szakmája, ne vegye magára.
Mostanában egy olyan programot írok, ami viszonylag bonyolult bináris fákat transzformál. A fák kezelhető méretűek (~ 50-60 csúcs), de nehéz szövegben igazán átláthatóan megjeleníteni a struktúrájukat. Kis keresgélés után rátaláltam a Graphviz-re. A Graphviz csomagot olyan szakemberek írták, akik elég alaposan utánanéztek ennek az információmegjelenítés témának. Sokkal több mindenre képes, mint amire én használom. Többek között jó:
- Típuslevezetések/Osztályhierarchiák megjelenítésére. Ezt használja például a doxygen is. Elég bonyolult ábrákat is képes előállítani.
- Véges autómaták megjelenítésére
- Adatbázis függőségek kirajzolására.
dot -Tsvg -o out.svg test2.dotA kimenetet csak jpegben tudom megmutatni, mert a fostalicksa blogspot nem engedi feltölteni svg-ben, de a forrás alapján ti is létrehozhatjátok vektorgrafikusan.
Egész jól néz ki, még így jpegben is. Lássuk a forrást!Egyértelmű az élek és a csúcsok definiálása. B-vel jelöltem az elágazó csomópontokat, L-el a leveleket, és a H-val a levelekben tárolt mutatókat, de ezt máshogy is írhatnánk.
digraph G
{
node [shape = record];
node[ label ="| B | "];
node0[ label ="| L | "];
node0000000000000000000000000000001000000000[ label ="| H | "];
node0000000000000000000000000000000100000000[ label ="| H | "];
node1[ label ="| L | "];
node1111111111111111111111111111111100000000[ label ="| H | "];
"node":f0 -> "node0":f1;
"node":f2 -> "node1":f1;
"node0":f0 -> "node0000000000000000000000000000001000000000":f1;
"node0":f0 -> "node0000000000000000000000000000000100000000":f1;
"node1":f0 -> "node1111111111111111111111111111111100000000":f1;
}
Remélem valaki tudja ezt egyszer használni. Nekem nagyon tetszett.
Neu

1 Comments:
hasznos kis túl, még jól jöhet valamikor.
Megjegyzés küldése
<< Home