关于一个插图的翻译

简介: 因为原文中有多个类似的图, 想找一个与原文尽量接近的方式进行表达. 一开始想用PlantUML来实现, 发现受UML的局限,画一个双向箭头都很麻烦. PlantUML底层用的dot语言, 所以直接用Graphviz的dot语言更方便.

先看一下图片对比效果

原图

H%J$G8C2{(`NC2M3H7WVP{V.png

译文

($[GJH8K%W@B@OO4T7I78MR.png

这个示意图没有什么特别的, 表现的就是tty的软硬件的关系

因为原文中有多个类似的图, 想找一个与原文尽量接近的方式进行表达. 一开始想用PlantUML来实现, 发现受UML的局限,画一个双向箭头都很麻烦. PlantUML底层用的dot语言, 所以直接用Graphviz的dot语言更方便.


简单地学习了一下, 效果不错, 特分享给大家.

我用的是mac, 安装graphviz

$ brew install graphviz

安装一个Atom或Sublime Text的插件, 我最后用的是Atom里的Graphviz preview+, 用起来很方便, 可以做到实时重绘, 不用了解命令行参数了.截图如下:

CD~A9`[MXS8OB@ZD0N8K2[Q.png


最后放上上面插图的源码,供有兴趣的同学参考,回头我会把全部译文和源码放到github上.

digraph TTY{
edge [dir="both"]
rankdir="LR";
subgraph cluster  {
   //[ID="dd"];
     label="硬件"
     color="#e3e3d1"
     style=filled
     fillcolor="#e3e3d1"
     终端[shape=box3d];
     物理线路[shape=box3d];
     UART[shape=box3d];
    终端 -> 物理线路 ->UART: 万能异部收发器;
}
subgraph cluster软件 {
style=filled
color="#e3e3d1"
label="软件"
fillcolor="#e3e3d1"
UART->"UART\n驱动" ;
   subgraph cluster内核 {
     color="#000000"
     style="dashed"
     label="内核"
      "行\n规程" [comment="线路规程"];
    "UART\n驱动" -> "行\n规程";
        "行\n规程" -> "TTY\n驱动";
   }
     用户进程1 [label = "用户\n进程"]  ;
     用户进程2 [label = "用户\n进程"]  ;
     用户进程3 [label = "用户\n进程"]  ;
    "TTY\n驱动" -> 用户进程1  ;
    "TTY\n驱动" -> 用户进程2;
    "TTY\n驱动" -> 用户进程3;
}
}
相关文章
|
存储 编解码 人工智能
学术论文插图要求简介
学术论文插图要求简介
160 0
|
编解码 数据可视化 Java
【干货】如何为论文设计精致的插图
论文是经过数月或数年实验得到的数据的积淀。 但是,原始数据或描述本身并不能成为好的期刊文章。 数据可视化工具和免费绘图软件能帮助科学家阐述他们的工作。 更好看的插图也可以吸引评审者的眼球。 更重要的是,它能帮助读者快速了解数据,增加引用和分享研究论文的可能性。
1778 0
|
Java iOS开发
|
数据可视化 Perl