java绘图 -- Dot语言小结

news/2024/7/8 5:06:08 标签: 图形, java

dot语言帮助文档官方网址: 帮助文档

1.Dot语言简介

DOT语言是一种文本图形描述语言。它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。 (摘自 维基百科)

注意: 1. dot在这里作为一种语言,是类似于java的一种语言,只不过这种语言是用来描述图形的。( 从某种程度上来看,这是一种对于图形的符号化表示,将图形以字符串的形式表示出来) 2. Dot语言中,根据图形的不同属性,建立了一些相应的关系。这里所说的属性包括,颜色,大小,形状等等。( 这些都是显示上的一些效果(形式),是为了方便人的理解,使人们更容易区分) 3. Dot最本质的东西应该是对于**图**的绘制,这是十分本质的一个东西。这也是Dot所反映的主要内容。 ##2.Dot语言的基本语法 在命令行将**dot文件****转为相应的图片**: dot -Tpng blockGraph.dot -o blockGraph.png 参考官方说明: http://www.graphviz.org/content/dot-language ##3.我的Dot使用总结。 ###3.1 Dot的基本结构 1. 在创建元素之前,你得先创建一个**图**,用来作为一个**容器**,以此用来**装依赖于容器的元素**。
digraph G{ }就是起到了这个作用
2. 一旦有了容器之后,就可以在其中放元素了。
由于Dot语言的主要功能在于,准确的刻画图,所以它的**核心的东西也是围绕着图来展开的(结点,边)**
下面的实例中:
**data1,data2**都是结点。
而两者之间的关系,用边来表示 :**data1 -> data2**
3. 在下面的代码示例中,我通过Dot语言构造了一个**图的空间**,在这个空间中,data1,data2是该空间的实体,并且这两个名字是他们存在于这个世界的身份。(应当具有**唯一性**)
4. 但是人们构造图的另一个方面,是为了方便人们分析,查看,所以图通过某种形式像外界展示。例如:这里的**label属性**就是显示给人看的时候的样子。 代码示例:
digraph G {
data1 -> data2;
data1 [label="if i < 1 goto nop"];
data2 [label="goto"];
}

3.2一些犯错

错误1

digraph G {
“if i 1 goto nop” -> “goto”;
}
效果(显然不是我们想要的):

  • 它把每个空格分隔的词汇当做了一个实体
  • 我希望只有两个实体一个边

上面<a class=图形效果" title="" />

进行改进:

  • 区分label和实体名。
digraph G {
data1 -> data2;
data1 [label="if i < 1 goto nop"];
data2 [label="goto"];
}

改进后的效果:
这里写图片描述


http://www.niftyadmin.cn/n/1428229.html

相关文章

迭代数据流分析中的逆后序(Reverse Postorder)

—————————————-更新———————————- Eli Bendersky大神的博客有关于数据流分析各种ordering的分析&#xff0c;大神的 分析深入浅出&#xff0c;大家请移步Eli Bendersky’s website。当然也可以继续看下面的文章 —————————————-更新——…

java绘图 -- The DOT Language

文章转自 http://blog.csdn.net/xiajian2010/article/details/23746995 缘起 在学习著名的Graphviz的工具中dot时&#xff0c;看到这篇语言描述&#xff0c;不长&#xff0c;就翻译了一下。翻译方法依然是带监督的机器学习&#xff0c;可惜的就是这个监督是不可反馈的。 正…

java容器 -- 遍历Map中的内容

采取得到所有键值&#xff0c;然后再得到所有value值的方式。 相关代码如下&#xff1a; public class MapTest {public static Map<Integer,String> entities new HashMap<Integer, String>();public static void main(String[] args) {entities.put(1, "h…

SSA的优势

业余民科&#xff0c;垃圾内容勿看 传统数据流分析&#xff08;Data-flow analysis&#xff09;劣势 前面的提到过传统的数据流分析是 Dense 的分析&#xff0c;就是在分析过程中&#xff0c;要携带当前所有的分析信息经过每一个程序点&#xff0c;即使很多信息与当前程序点没…

java字符串 -- String,StringBuffer,StringBuilder的区别

String 字符串常量 StringBuffer 字符串变量&#xff08;线程安全&#xff09; StringBuilder 字符串变量&#xff08;非线程安全&#xff09; 简要的说&#xff0c; String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型…

构造Dominator Tree以及Dominator Frontier

支配树&#xff08;Dominator Tree&#xff09; 更新 再谈Dominator Tree的计算 在生成SSA的时候&#xff0c;需要计算在何处插入正确的 Φ (phi-function) &#xff0c;一种方法是在所有有多个前驱的Basic Block的开头插入 Φ-node&#xff0c;但是这种方法会插入很多的无用的…

Java 读写Properties配置文件

转自&#xff1a; http://www.cnblogs.com/xudong-bupt/p/3758136.html 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口&#xff0c;也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方&#xff0c;就是它的键和值都是…

inline - performance

引言 函数内联&#xff08;inline&#xff09;算是C/C很重要的语言特性&#xff0c;对于函数体比较小的函数来说 inline 可以说是一种比较重要的优化了。inline 在函数调用处&#xff08;Call Site&#xff09;使用函数体进行替换&#xff0c; inline 和 macro 很相似&#xf…