2010-03-26 12 views
5

Ich möchte ein Werkzeug, um Diagramm in einer Programmiersprache zu erstellen, vielleicht so etwas wie Lua.Gibt es ein gutes Werkzeug zum programmatischen Erstellen von Diagrammen?

Gibt es dafür ein Tool?

+0

Ich glaube, Sie einige hübsche Diagramme in Latex machen http://tex.stackexchange.com/questions/149602/drawing-flow-diagram-in-latex-using-tikz – lovelyVector

+0

Für einfache Diagramme können Sie Latex verwenden. http://tex.stackexchange.com/questions/149602/drawing-flow-diagram-in-latex-using-tikz – lovelyVector

Antwort

3

Ja, Sie können .dot Dateien für Graphviz generieren. Da es sich um Textdateien handelt, können Sie dies von jeder Sprache aus tun. Ich schrieb vor einer Weile a post über automatische Generierung von Binär-Baum-Diagrammen aus C-Code mit Graphviz.

+0

Ja, aber .dot-Dateien lassen Sie nicht um die Position der Elemente bewegen. Recht? Ich suchte nach mehr Kontrolle über die Position der Boxen, Pfeile usw. – FelipeC

+0

@felipec: dann, betrachten Sie eine dieser SVG-Generierung Bibliotheken –

1

Ein bisschen Retro, vielleicht, aber es gibt immer Pic. Es ausgegeben zu .eps, die leicht convert ed sein können, um alles, was Sie wollen.

Die Eingabe ist ein wenig Old-School, aber da es nur Text ist, kann es von jeder Sprache (auch Lua), die Textausgabe hat, ausgerichtet werden. Hier ist ein Beispiel für ein Diagramm einer Datenstruktur.

.PS 
boxwid = .5; boxht = .25 
down 
Base: box "base" 
Used: box "used" 
Max: box "max" 

move to Base.e 
move right 

right 
Mfile: box dashed wid 3 ht 5 
move to Mfile.nw; move down .125 

Mtab: right; box "nexttab"; box "nextent" 
move to Mtab.sw; move down .25 

Tab: right; box "adr0"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr1"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr2"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr3"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr4"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr5"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr6"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr7"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box "adr8"; box "mark"; box "sz" 
move to Tab.sw; move down .25 
Tab: right; box invis "..."; box invis "..."; box invis "..." 
move to Tab.sw; move down .25 
Tab: right; box "adrN"; box "mark"; box "sz" 

arrow from Base.e to Mfile.nw 
arrow from Used.e to Tab.sw down .125 
arrow from Max.e to Mfile.sw 

.PE 

Indexed-Memory Data Structure

Verwandte Themen