dot 语言画类图和 UML 关系环境变量与命令行VSCode (实时预览编辑器)类图一对多多对多UML(统一建模语言)关系其他学习链接

开源代码画图软件 graphviz

官网&下载 (可以用 Chrome 翻译看教程): https://graphviz.gitlab.io/download/

安装后可以设置拓展名为 .gv 的文件都用 gvedit.exe 打开

gvedit.exe使用说明

示例代码:

digraph G {
  a->b
}

环境变量与命令行

可以在环境变量的 Path 添加安装目录下的 bin 路径 右击我的电脑 -> 属性

高级系统设置

环境变量

Path

新增

D:\Program Files (x86)\Graphviz2.38\bin 英文分号;分隔

添加环境变量后就可以在命令行中生成图片了,命令如下: dot -Tsvg -O 文件路径 sftp -Tsvg -O 文件路径 第一个是单方向算法 第二个是多方向少交叉算法 -O是根据格式自动补充拓展名 也可以-o加目标路径文件名

VSCode (实时预览编辑器)

加上插件: Graphviz (dot) language support for Visual Studio Code Graphviz Preview:Ctrl +Shift + P select “Graphviz: Show Preview”

VScode效果

类图

digraph Class{
    rankdir=BT; // 箭头从下到上
    // 默认方形
    node [shape = "record", fontname = "Consolas"]
    // 默认空箭头
    edge [arrowhead = "empty", fontname = "Consolas"]

    // + 公有 - 私有 # 保护 ~ 包级(默认) \l左对齐换行
    people [label = "{people
    | +name: String\l
    -age: int\l
    | +getAge(): int\l}"]
    // o- 表示接口
    study [label = "{o- study}"]

    // 继承 extends
    student -> people
    // 实现 implements
    student -> study [style="dashed"]
}

类图

一对多

digraph {
    1 -> n [
        arrowhead = "crow"
        taillabel="1  "
        headlabel="n  "
    ]
}

1-n

多对多

digraph {
    1 -> n [
        dir = "both"
        arrowtail = "crow"
        arrowhead = "crow"
        taillabel="n  "
        headlabel="n  "
    ]
}

n-n

UML(统一建模语言)关系

digraph UML{
    rankdir=LR
    // 设置字体防止乱码
    fontname = "Microsoft YaHei"
    node [fontname = "Microsoft YaHei"]
    edge [fontname = "Microsoft YaHei"]
    
    子类 -> 父类
    [label = "1继承泛化
    Generalization
    extends"
    arrowhead = "empty"]

    接口[label = "接口
    interface"]

    实现 -> 接口
    [label = "2实现
    Realization
    implements "
    arrowhead = "empty"
    style="dashed"]

    主体 -> 工具
    [label = "3依赖
    Dependency"
    arrowhead = "vee"
    style="dashed"]


    主人 -> 被拥有
    [label = "4.1关联
    Association"
    arrowhead = "vee"]

    A -> B
    [label = "4.2双向关联"
    arrowhead = "none"]

    C -> C
    [label = "4.3自身关联"
    arrowhead = "vee"]


    成员 -> 整体
    [label = "5聚合
    Aggregation"
    dir = "both"
    arrowtail = "vee"
    arrowhead = "odiamond"]

    部分 -> 总体
    [label = "6.组合
    Composition"
    dir = "both"
    arrowhead = "diamond"
    arrowtail = "vee"]
}

UML

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

其他学习链接

使用graphviz绘制流程图(2015版): http://icodeit.org/2015/11/using-graphviz-drawing/?from=timeline

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LeoXu的博客

启动 mini-web 报错 java.lang.ClassNotFoundException...

在学习Springside的实例mini-web的时候遇到了Tomcat报错:

902
来自专栏落影的专栏

OpenGLES进阶教程8-obj文件和mtl文件解析

教程 距离上一篇教程已经有两个月了,这两个月详细阅读GPUImage的源码,并写了详细解析,发现对OpenGLES的深入了解很有帮助。 上周一个简书的朋友问我...

3767
来自专栏好好学习吧

Python怎么去写单元测试用例去测试hello world呢

逛着博客园,看到乙醇大佬的一篇随笔 https://www.cnblogs.com/nbkhic/p/9370446.html,于是就在想怎么测试这句hello...

1693
来自专栏马洪彪

C#仪器数据文件解析-Word文件(doc、docx)

不少仪器数据报告输出为Word格式文件,同Excel文件,Word文件doc和docx的存储格式是不同的,相应的解析Word文件的方式也类似,主要有以下方式: ...

3594
来自专栏linux驱动个人学习

高通 display 驱动【转】

1.2K4
来自专栏逆向技术

PE格式第九讲,资源表解析

        PE格式第九讲,资源表解析 一丶熟悉Windows管理文件的方法 首先,为什么标题是这个,主要是为了下边讲解资源方便,因为资源结构体很乱.如果直...

2005
来自专栏吉浦迅科技

DAY20:阅读Surface Memory

1932
来自专栏逍遥剑客的游戏开发

MPQ 文件系统完成

1834
来自专栏游戏杂谈

TexturePacker压缩png的命令

压缩png效果最好的当然是TinyPNG这种神器了,不过一般情况下TexturePacker压缩出来的也基本上能达到效果。

1552
来自专栏Hongten

在 Excel 工作簿中定义决策表(Oracle Policy Modeling-Define decision tables in Excel workbooks)

要在 Excel 中编写规则,您只需在表中编写规则,并使用 Oracle Policy Modeling 样式标识单元格中的信息类型,

943

扫码关注云+社区