有没有免费的软件可以用来制作与软件工程相关的个人信息,例如内存管理,堆栈等,例如下面的用于演示和/或报告的软件?

注意:我以前使用MS Paint,然后是LaTeX。



评论

哪个操作系统?

Linux或Windows

LaTeX,您是说您使用了TikZ软件包吗?如果您使用过LaTeX,您还看过渐近线吗?

可以轻松地在TikZ中绘制示例中的图,一旦您弄清楚了一次。如果您需要绘制很多非常相似的图形(即以相同的样式),我建议您研究TikZ,尤其是如果您已经在使用LaTeX。编辑示例:texample.net/tikz/examples/area/computer-science

#1 楼

看一下DOT语言和Graphviz软件。使用它,您可以创建自己的图形以及更多图形:

http://www.tonyballantyne.com/graphs.html-从第5节开始阅读

https: //en.wikipedia.org/wiki/DOT_%28graph_description_language%29

http://www.graphviz.org/Documentation/dotguide.pdf

示例结构:

digraph structs {
    node[shape=record]
    struct1 [label="<f0> left|<f1> mid\ dle|<f2> right"];
    struct2 [label="{<f0> one|<f1> two\n\n\n}" shape=Mrecord];
    struct3 [label="hello\nworld |{ b |{c|<here> d|e}| f}| g | h"];
    struct1:f1 -> struct2:f0;
    struct1:f0 -> struct3:f1;
}


渲染的:



用DOT语言创建对象后,可以将其转换为图像:

dot -Tpng input.dot > output.png


评论


我第二。其他详细信息(Tomasz,您可能希望将其包含在答案中,有原因请参见此处;例如,您可以包括第二个链接中的示例之一),包括易于维护“图形”甚至脚本化功能:这些“点文件” ”为纯文本。

– Izzy♦
15年7月20日在10:03

#2 楼

作为上述基于文本的工具(例如graphvizasymptote)的替代方法,您可以使用Inkscape矢量绘图程序。

您可以用它绘制几乎任何东西,因为它是矢量-基于图纸,与paint中完成的图纸不同,这些图纸具有可伸缩性和可编辑性。

#3 楼

上面的一些答案集中于通过文本描述图形,然后将其可视化。这确实对某些人有用,但是确实存在许多其他选项,可以像专用绘图程序中那样直观地执行此操作。所以我以为我会提到其中的两个,最近我已将它们用于不同的图纸:



draw.io-一个在线绘画程序,也可以通过chrome应用程序作为独立程序。它是免费的,并且具有大量的库,可轻松绘制与软件相关的不同图形。允许存储到Google Drive,One Drive,DropBox,本地设备或浏览器中。确实也有很好的导入/导出选项。它确实具有一些与重新布置节点和连接有关的简洁功能,并且在构建软件设计的相关图形/图表/ ...时,具有相当多的图表类型。它确实允许导入/导出各种类型,包括graphml文件(可能会自动或手动更新)。


#4 楼

我想绘制临时图形时使用“处理”。它完全适合创建视觉内容,我认为它是我使用过的最简单的编程语言和API,并且使用起来非常有趣。同时,我也很感谢大多数人不想编写计算机程序来绘制图形!然后计算机会找出如何为您绘制它。处理是一种命令式语言-您描述要如何绘制图形。我并不是说一个比另一个要好-只是两者之间在样式上有显着差异。

我注意到本页提到的许多技术都有共同的分母,这就是SVG:DOT,Inkscape和LaTeX都可以作为SVG输出。 Inkscape and Processing可以读取SVG。因此,考虑使用哪种工具创建SVG而不是使用哪种工具绘制图形可能会有所帮助?