2010-03-26 10 views
5

Vorrei uno strumento per creare diagrammi in un linguaggio di programmazione, forse qualcosa come lua.Esiste un buon strumento per la creazione di diagrammi a livello di programmazione?

C'è qualche strumento progettato per questo?

+0

Penso che si possa fare alcune belle diagrammi in lattice http://tex.stackexchange.com/questions/149602/drawing-flow-diagram-in-latex-using-tikz – lovelyVector

+0

Per gli schemi semplici è possibile utilizzare il lattice. http://tex.stackexchange.com/questions/149602/drawing-flow-diagram-in-latex-using-tikz – lovelyVector

risposta

3

Sì, è possibile generare file .dot per Graphviz. Poiché si tratta di file di testo, puoi farlo da qualsiasi lingua. Ho scritto un po 'di tempo fa a post sulla generazione automatica di diagrammi ad albero binario dal codice C usando Graphviz.

+0

Sì, ma i file .dot non consentono di spostarsi nella posizione degli elementi. Destra? Stavo cercando un maggiore controllo della posizione di scatole, frecce, ecc. – FelipeC

+0

@felipec: quindi, considera una di quelle librerie di generazione SVG –

1

Un po 'retrò, forse, ma c'è sempre Pic. Emette a .eps che può facilmente essere convert ed a tutto ciò che vuoi.

L'input è un po 'old-school, ma poiché è tutto testo, può essere scelto da qualsiasi lingua (anche Lua) con output di testo. Ecco un esempio di un diagramma di una struttura di dati.

.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

Problemi correlati