• 二:dot语言语法及使用


    简介:
      上一篇已经讲解了如何安装Graphviz, Graphviz可以基于dot语法生成流程图,这一节来了解下dot语法的结构和使用。官方文档参考。

    一: Dot语言

      DOT语言是一种文本图形描述语言。它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。DOT语言文件通常是具有.gv或是.dot的文件扩展名。

      很多程序都可以处理DOT文件。其中的一些,例如dotneatotwopicircofdpsfdp,会读取DOT文件并将之渲染成为图形格式。其它的一些,比如gvprgcaccyclicccompssccmaptred,可以读取DOT文件并对它代表的图形进行一些处理。类似于GVeditleftydottygrappa则提供了交互式的界面。以上程序大部分都包括在了Graphviz软件包中。

    二:基本语法

      2.1 无向图

        在最简单的应用中,DOT语言可以用来描述一张无向图。无向图显示了对象间最简单的关系,例如人之间的友谊。使用关键字graph开始一张无向图的定义,并用大括号包含要描述的节点,双连字号(--)被用来描述节点间的关系。另外,一行的末尾需要加上分号(;)。

     graph graphname {
         a -- b -- c;
         b -- d;
     }

      生成图像如下

      

       2.2 有向图

        类似于无向图,DOT语言也可以用来描述一张有向图,类似于流程图和树状图。其语法与无向图相似,但要在图的最开始使用关键字'digraph',并用箭头(->)表示节点直接的关系。

    digraph graphname { 
      a -> b -> c;
      b -> d;
    }

      生成图像图下

      

       2.3 属性

        DOT语言中,可以对节点和边添加不同的属性。这些属性可以控制节点和边的显示样式,例如颜色,形状和线形。可以在语句和句尾的分号间放置一对方括号,并在其中中放置一个或多个属性-值对。多个属性可以被逗号和空格(, )分开。节点的属性被放置在只包含节点名称的表达式后。

     graph graphname {
         // label属性可以改变节点的显示名称
         a [label="Foo"];
         // 节点形状被改变了
         b [shape=box];
         // a-b边和b-c边有相同的属性
         a -- b -- c [color=blue];
         b -- d [style=dotted];
     }

      带属性的图如下

      

      2.4  注释

        DOT语言支持C语言与C++风格的单行与多行注释。另外,也支持Shell脚本风格的以#开头的注释。 

    // 单行注释
     /* 多行
        注
        释 */
     # 如此的行也会被忽略。

    三: Dot生成图片

      将程序编译的流程使用Dot生成流程图。代码如下,保存成文件build.dot

    digraph G{
        node[shape=box];
        source[fontname="FangSong" label="源文件(.h .c)" color = "red"];
        pre[fontname="FangSong" label="预编译后的文件(.i)"];
        build[fontname="FangSong" label="编译后的汇编文件(.S)"];
        as[fontname="FangSong" label="汇编后可重定位文件(.o)"];
        link[fontname="FangSong" label="链接可重执行文件(ELF)" color = "red"];
        source->pre[fontname="FangSong" label="gcc -i" fontsize = 12];
        {rank=same; source; pre;}
        pre->build[fontname="FangSong" label="gcc -s" fontsize = 12];
        build->as[fontname="FangSong" label="as -o" fontsize = 12];
        as->link[fontname="FangSong" label=" gcc -o" fontsize = 12];
    }

      相同路径下打开powershell执行命令: dot -T png  -o builformatd.png build.dot

      生成结果如下

      

    一个比较漂亮的dot生成图示范: https://blog.csdn.net/ac_dao_di/article/details/57427609?utm_source=blogxgwz4

  • 相关阅读:
    Sharding-JDBC(三)3.1.0版本实践
    Sharding-JDBC(二)2.0.3版本实践
    Sharding-JDBC(一)简介
    Java并发(六)线程池监控
    Java并发(五)线程池使用番外-分析RejectedExecutionException异常
    Java并发(四)线程池使用
    Java并发(三)线程池原理
    Java并发(二)异步转同步
    tarjan+概率
    线段树(种树)
  • 原文地址:https://www.cnblogs.com/edver/p/13772875.html
Copyright © 2020-2023  润新知