c语言调用graphviz_graphviz使用

c语言调用graphviz_graphviz使用graphviz 是贝尔实验室几个计算机牛人设计的一个开源的图表 计算机科学中数据结构中的图 可视化项目 主要用 C 语言实现 主要实现了一些图布局算法 通过这些算法 可以将图中的节点在画布上比较均匀的分布 缩短节点之间的边长 并且尽量的减少边的交叉 graphviz 提供命令式的绘图方式 它提供一个 dot 语言用来编写绘图脚本 然后对这个脚本进行解析 分析出其中的定点 边以及子图 然后根据属性进行绘制

graphviz是贝尔实验室几个计算机牛人设计的一个开源 的图表(计算机科学中数据结构中的图)可视化项目,主要用C语言实现,主要实现了一些图布局算法。通过这些算法,可以将图中的节点在画布上比较均匀的分布,缩短节点之间的边长,并且尽量的减少边的交叉。

graphviz提供命令式的绘图方式,它提供一个dot语言 用来编写绘图脚本,然后对这个脚本进行解析,分析出其中的定点,边以及子图,然后根据属性进行绘制。具体的可以看一个例子,这个例子来自官方的文档。

下载

第一个demo

digraph G{

size = “4, 4”;//图片大小

main[shape=box];/*形状*/

main->parse;

parse->execute;

main->init[style = dotted];//虚线

main->cleanup;

execute->{make_string; printf}//连接两个

init->make_string;

edge[color = red]; // 连接线的颜色

main->printf[style=bold, label=”100 times”];//线的 label

make_string[label = “make a\nstring”]// \n, 这个node的label,注意和上一行的区别

node[shape = box, style = filled, color = “.7.3 1.0”];//一个node的属性

execute->compare;

}

执行:dot -Tjpg aaa.dot -o aaa.jpg

生成svg: dot -Tsvg aaa.dot -o aaa.svg

c语言调用graphviz_graphviz使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233892.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux的proc文件系统

    Linux的proc文件系统

    2022年1月3日
    45
  • MySQL 1045登录失败

    MySQL 1045登录失败当你登录MySQL数据库出现:Error1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信息将丢失,如果你不想重装,那么就需要找回密码或者重置密码。解决的方法应该有多种,这里我推荐大家使用一种原理通过,操作简单的方法,适用于windows以及linux平台。 MySQL1045错误如

    2022年6月9日
    31
  • VirtualBox 中的Centos如何安装VBoxGuestAdditions

    VirtualBox 中的Centos如何安装VBoxGuestAdditions最近在VirtualBox的虚拟机中安装Centos遇到一个问题:如何安装VBoxGuestAdditions功能。查了很多资料这个博客写的还靠谱些:https://blog.csdn.net/nanalinlinlin/article/details/47169811整理了下这里我用到的命令:一、安装VBoxGuestAdditions1、yumupdate2、yum…

    2022年6月15日
    70
  • 从机械硬盘和固态硬盘的结构来看IO

    从机械硬盘和固态硬盘的结构来看IO“磁盘”这个词,对于程序员来说并不陌生,我们知道它是一种存储介质,主要用来存储数据的,可以说常用的中间件基本上都离不开它,比如我们常用的MySQL数据库、kafka消息引擎,甚至redis缓存都离不开磁盘。我们在优化某个业务逻辑的时候,经常需要用到缓存,尽量让热数据都从缓存里读取,因为我们知道磁盘是缓慢的,特别在高并发的场景下,我们要保证极少的请求走磁盘IO。不知道你有没有思考过以下问题: 机械硬盘为什么慢? 机械硬盘有多慢? kafka也是写磁盘的,它却挺快的,为什么?..

    2022年5月12日
    40
  • Python OSError: [Errno 22] Invalid argument:的出现和解决「建议收藏」

    Python OSError: [Errno 22] Invalid argument:的出现和解决「建议收藏」1、在学习从文件读取数据中,写了个示例代码,读取不在同一个目录的file.txt,运行后报这个PythonOSError:[Errno22]Invalidargument:错误:(1)、首先,在F盘的python_stu中新增了一个file.txt,同时在F盘的python_stu文件目录底下新增一个file文件夹,里面有个file_reader.py来读取python_stu文件目…

    2022年6月24日
    44
  • 10天学通Android开发(5)-项目实战:计算器

    10天学通Android开发(5)-项目实战:计算器

    2021年9月3日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号