工作中完成一個項目之后往往會花一些時間編寫文檔阅爽,畫程序流程圖。這樣的好處是方便交接項目荐开,后續(xù)也能夠快速回憶付翁。畫流程圖的軟件有很多, 比如常用的Process,百度腦圖晃听,缺點是流程圖只能以圖片保存放到代碼目錄中百侧,后續(xù)更改很麻煩砰识。
這里參考Buildroot 開源庫中使用的工具Graphviz ,根據(jù)相應(yīng)的規(guī)則自動生成流程圖佣渴。
Graphviz簡介
Graphviz(英文: Graph Visualization Software的縮寫) 是一個由AT&T開發(fā)的圖形繪制工具辫狼,用于繪制DOT語言腳本描述的圖形。支持多種格式輸出观话,在windows予借、Linux、Mac上都可以順利運行频蛔。
安裝
Ubuntu或Debian下安裝很簡單
sudo apt-get install graphviz
使用示例
Dot是開源工具包Graphviz上用來畫圖的一門腳本語言灵迫。通過布局引擎解析腳本得到圖像,然后可以將圖像導(dǎo)出為各種格式以滿足需求晦溪。有了它瀑粥,我們就可以很方便地通過編寫腳本來畫各種結(jié)構(gòu)示意圖和流程圖。
第一步: 編寫以dot為后綴的文件hello.dot
digraph {
hello -> world;
}
第二步: 使用dot命令編譯
dot hello.dot -T png -o hello.png
完整的命令為:
<cmd> <inputfile> -T <format> -o <outputfile>
-T png 表示輸出格式為png三圆,可以設(shè)置的格式有pdf狞换、svg、gif舟肉、dia等格式
第三步: 最終結(jié)果
實際過程中畫流程圖往往根據(jù)項目的實際情況, 這里提供一些基礎(chǔ)的例子供參考.
例子1 : 簡單有向圖
digraph graphname{ // 定義有向圖,graphname表示圖的名字
a -> b; //定義一個有向邊,它從起始指向結(jié)束節(jié)點
b -> c;
a -> c;
}
編譯生成
例子2 : 帶標簽的簡單有向圖
digraph graphname{
T [label="Teacher"] // node T
P [label="Pupil"] // node P
T->P [label="Instructions", fontcolor=darkgreen] // edge T->P
}
編譯生成
例子3:同樣的圖修噪,不同的形狀和顏色
digraph graphname {
T [label="Teacher" color=Blue, fontcolor=Red, fontsize=24, shape=box] // node T
P [label="Pupil" color=Blue, fontcolor=Red, fontsize=24, shape=box] // node P
T->P [label="Instructions", fontcolor=darkgreen] // edge T->P
}
編譯生成
例子4 : 定制模板
單獨地去定義每一個節(jié)點其實很浪費時間的,這個模板會讓你事半功倍路媚。
digraph hierarchy {
nodesep=1.0 // increases the separation between nodes
node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour
edge [color=Blue, style=dashed] //All the lines look like this
Headteacher->{Deputy1 Deputy2 BusinessManager}
Deputy1->{Teacher1 Teacher2}
BusinessManager->ITManager
{rank=same;ITManager Teacher1 Teacher2} // Put them on the same level
}
編譯生成
關(guān)注程序手藝人,訂閱號中輸入流程圖模板關(guān)鍵字黄琼,獲取更多的參考模板。