一些画图软件
2 min
Ditaa
这是一个基于ASCII的画图软件,基于Java。
下面是一个画图示例。
+-----+
| |
| a |
| |
+-----+
----->这样可以生成下面这个正方形和一个箭头。
然后是稍微复杂一点的示例:
+-----------+ +------------+
| {o}| | c1FF|
| Scheduler | | Internet |
| cBLU| | {s}|
+-----+-----+ | +------------+
| | |
^ | | Requests |
Requests | | | |
| | \------> |
| +-----+-----+ |
+----------------+ | | | /------+-----\
| | | | Scrapy | | |
| Item Pipelines +-------+--+ +--------+ Downloader |
| cRED| | | Engine | | cYEL|
+----------------+ | | {c} | \------------/
| +-----+-----+ /------
<-------\ | | |
| | | | Responces
Items | | | |
| +----+------+ v
| | |
| Spiders |
| cC02|
+-----------+这个软件是个老软件,在2018年诈尸更新了一下,支持了svg绘图。不过由于中文字体显示比较宽,在等宽字体下显示效果不是很好,所以这个只能当玩具来用了。
org-mode的org-babel原生支持ditaa画图,见Ditaa Code Blocks in org
PlantUML
比较美观,实用的画图工具,和上面的工具一样是基于Java的,可以画流程图等很多图。
下面是用PlantUML还原的一个图。
@startuml
start
repeat
if (是否在列表date里?) then (是)
:将对应数据加1;
else (否)
:添加到列表里,添加数据;
endif
repeat while
stop
@endumlorg-babel同样支持PlantUML,见PlantUML Code Blocks in Babel
Graphviz
这个画图软件适合画节点与节点的关系。
strict graph {
b [shape=box];
c [shape=triangle];
a -- b [color=blue];
a -- c [style=dotted];
}Metapost
这个工具极度依赖,优点是可以画出任意图,包括几何图,支持公式。
prologues := 3;
outputformat := "svg";
outputtemplate := "%j.%{outputformat}";
verbatimtex
\documentclass{article}
\begin{document}
etex
beginfig(1);
dotlabel.llft(btex $A$ etex, (0,0));
dotlabel.ulft(btex $B$ etex, (1cm,2cm));
dotlabel.urt(btex $C$ etex, (3cm,2cm));
dotlabel.lrt(btex $D$ etex, (2cm,0));
drawarrow (0,0)--(1cm,2cm);
drawarrow (0,0)--(2cm,0);
draw (1cm,2cm)--(3cm,2cm) dashed evenly;
draw (3cm,2cm)--(2cm,0) dashed evenly;
drawarrow (0,0)--(3cm,2cm) withcolor red;
drawarrow (2cm,0)--(1cm,2cm) withcolor blue;
label.ulft(btex $\vec{a}$ etex, (0.5cm,1cm));
label.top(btex $\vec{b}$ etex, (1cm,0));
endfig;
end下面的SVG经过了调整,原版的图片非常小。