Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1752175
  • 博文数量: 335
  • 博客积分: 4690
  • 博客等级: 上校
  • 技术积分: 4341
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-08 21:38
个人简介

无聊之人--除了技术,还是技术,你懂得

文章分类

全部博文(335)

文章存档

2016年(29)

2015年(18)

2014年(7)

2013年(86)

2012年(90)

2011年(105)

分类: 系统运维

2013-08-10 22:23:23

晚上闲来无事,在论坛溜达的时候,发现有人介绍NGINX,上次在书店的时候发现也有这本书,随便看看,然后发现作业介绍另一个
图形工具-GRAPHVIZ感觉挺有意思的,,就动手安装了一把,是不是有点本末倒置了?不是的,因为最近在看一段cobol的代码,代码的量也不大,但是感觉看了前面,忘了后面,想想有没有必要把这东西用这工具展示出来?
本来cobol有这种图形化的工具的,但是非免费,只能自动动手画图了,说到这里,看的代码维护文档很简单,没有详细的文档,至于原因就不得而知了,因此只能靠我自己喽~~~~~~~~~
因此先说说我们的graphviz吧,就是画图,比较适合于流程图:
安装就不用多说了,问一下度娘就OK了
说一下基本的原理吧:

raphviz是门基于dot语言的绘图工具,也就是说它不是使用鼠标来画图的,而是通过dot这种描述语言来做的,然后在命令行下使用命令生成对应的图片,这样做的优点是不用去手功的对齐坐标,而且也可以做为一些可视化的解决方案,但是它的缺点同样是显著的:无法对每一个元素的位置进行很详细的控制。这里就存在一个取舍问题了。像我这种就用来画画流程图的人来说,已经够用了,而且要比visio那种工具更好用。

DOT语言由三个对象组成grahps,nodes,edges,这与离散数学中的图的定义是一个概念。下面是个具体的例子,第一行是图名与类型,其于的就是创建nodes,edges,或者subgraphs。在要创建的这些对象中,它们的名字与属性可以是 C identifiers,数字,或者是quoted C string, 引号的作用主要是为了在名字与属性中可以带空白符与标点符号。

graphviz简介

本文介绍一个高效而简洁的绘图工具graphviz。graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。graphviz提供丰富的导出格式,如常用的图片格式,SVG,PDF格式等。

graphviz中包含了众多的布局器:

  1. dot 默认布局方式,主要用于有向图
  2. neato 基于spring-model(又称force-based)算法
  3. twopi 径向布局
  4. circo 圆环布局
  5. fdp 用于无向图

graphviz的设计初衷是对有向图/无向图等进行自动布局,开发人员使用dot脚本定义图形元素,然后选择算法进行布局,最终导出结果。

首先,在dot脚本中定义图的顶点和边,顶点和边都具有各自的属性,比如形状,颜色,填充模式,字体,样式等。然后使用合适的布局算法进行布局。布局算法除了绘制各个顶点和边之外,需要尽可能的将顶点均匀的分布在画布上,并且尽可能的减少边的交叉(如果交叉过多,就很难看清楚顶点之间的关系了)。所以使用graphviz的一般流程为:

  1. 定义一个图,并向图中添加需要的顶点和边
  2. 为顶点和边添加样式
  3. 使用布局引擎进行绘制
1 简单的图:

点击(此处)折叠或打开

  1. digraph abc{
  2. a;
  3. b;
  4. c;
  5. d;
  6. a -> b;
  7. b -> d;
  8. c -> d;
  9. }
效果如下:


点击(此处)折叠或打开

  1. digraph G {
  2. node [shape=record];
  3. edge [arrowhead=normal];
  4. main [label="this is label"]
  5. main -> parse -> execute;
  6. main -> init;
  7. main -> cleanup;
  8. execute -> make_string;
  9. execute -> printf
  10. init -> make_string;
  11. main -> printf;
  12. execute -> compare;
  13. }





这里要注意的是中文问题,graphviz默认设置下是不支持中文,如果在dot文件中直接写中文,会显示成乱码,要解决这个问题要做两件事,

1、把源文件保存为UTF-8的格式
2、设置fontname,也就是红色的部分,

如果想更深入的了解graphviz,可以去它的官方网站看一下相关文档,里面还有一些paper,如果感兴趣的话也可以看看,其实graphviz还用到了编译原理的知识,只是没有什么创新所以也就没有重点说了,但从这可见编译原理的重要性。

1、windows系统中文字体的英文名

新細明體:PMingLiU
細明體:MingLiU
標楷體:DFKai-SB
黑体:SimHei
宋体:SimSun
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微軟正黑體:Microsoft JhengHei
微软雅黑体:Microsoft YaHei


现在我的主要任务就是想想如何展现我的代码了~~~~~~~~~~~~~~
http://blog.163.com/prevBlogPerma.do?host=lockriver&srl=487232242010101761749383&mode=prev

阅读(9740) | 评论(0) | 转发(0) |
0

上一篇:REXX之PARSE USAGE

下一篇:pyc文件解析

给主人留下些什么吧!~~