输出
阅读本章之前,请先阅读概论
本章说明了Graph::Easy支持的输出格式以及各种格式的限制,优点以及缺点。
格式
Graph::Easy可以产生如下几种输出格式:
- ASCII:使用ASCII art绘制图形
- Box Art: 使用Unicode的"box drawing" 字符创建文本图形
- HTML: 使用HTML+CSS代码来渲染图形
- SVG: 产生可伸缩矢量图形输出
另外,可以用以下几种描述语言来描述图形:
- txt: Graph::Easy自定义的文本描述语言,用Graph::Easy的解析起解析
- graphviz : 使用graphviz语言,可以通过某些外部程序比如
dot生成PNG, SVG等输出 - GraphML : GraphML语言
- yED : yED语言
ASCII
ASCII格式的输出只能有两种颜色,一个是前景色,一个是背景色。
#============================================#H v+---------+ ........ +---------+ +--------+ +--------+| Bautzen | --> : Bonn : --> | Koblenz | --> | Berlin | --> | Kassel |+---------+ :......: +---------+ +--------+ +--------+^ | ^ ^: +------------+---------------+: |: +------+ |............. | Ulm | ------++------+
这种格式有如下限制:
- 不论真实的边的箭头如何,这种格式的箭头永远是打开的
- 节点的形状不支持多边形或者圆角
- 以下几种边
bold,broad和wide都用#渲染,因此看起来是一样的.
Box Art
这种方式和ASCII原理差不多,但是使用它Unicode的box art字符;这种方式边角之间的空隙更小,因此看起来效果好很多。Box Art和ASCII的限制差不多,但是有以下不同:
- 边角看起来更好
- 支持圆角
- 支持不同的箭头风格
- 边的几种风格
bold,broad和wide可以正常使用
My sample graphTestlabel┌···············································┐: v┌─────────────┐ label ▛▀▀▀▀▀▀▜ ┌───────┐│ One │ ───────> ▌ Two ▐ ▬▬▬▬▬▬▬▬▬▬▬▬> │ Four │ ··· None└─────────────┘ ▙▄▄▄▄▄▄▟ └───────┘║ Test label║ ┌╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴╴┐v ╵ v┌−−−−−−−−−−−−−┐ ████████ ┏━━━━━━━┓ ┌───────┐┌·······╎ Three ╎ <══════> █ Five █ ────────────> ┃ Seven ┃ ─── │ Eight │: └−−−−−−−−−−−−−┘ ████████ ┗━━━━━━━┛ └───────┘: ^ │ ^: │ │ │: Test │ Test label └────────────────────────────────────┘: label v: ┌─────────────┐: │ Sixty │: │ Six │: │ and │└······>│ six │└─────────────┘
HTML
HTML效果看起来如下:

SVG/GraphML/yED
略
