简体   繁体   English

图形绘制算法 - 我试图渲染有限状态自动机

[英]Graph drawing algorithms - I'm trying to render finite state automata

I want to write something that will draw finite state automata. 我想写一些能够绘制有限状态自动机的东西。 Does anyone know any algorithms that are related to this? 有谁知道任何与此相关的算法?

EDIT: I should mention that I know about graphviz. 编辑:我应该提一下我对graphviz的了解。 I want to build my own draw program/function, so what I'm looking for is some more theoretical stuff/pseudo-code for algorithms. 我想构建自己的绘图程序/函数,所以我正在寻找的是一些更理论化的东西/算法的伪代码。

Graph drawing is a fairly complex subject due to the fact that different graphs need to be drawn in different ways - there is no one algorithm fits all approach. 图形绘制是一个相当复杂的主题,因为需要以不同的方式绘制不同的图形 - 没有一种算法适合所有方法。

May I suggest the following resource: 我可以建议以下资源:

It should be a good starting point, page 15 provides a number of links and books to follow up. 它应该是一个很好的起点,第15页提供了许多链接和书籍来跟进。

To get started with graph drawing algorithms, see this famous paper: 要开始使用图形绘制算法,请参阅这篇着名的论文:

  • " A technique for drawing directed graphs " (1993), by Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, Kiem-phong Vo, IEEE Transactions on Software Engineering . 绘制有向图的技术 ”(1993),作者:Emden R. Gansner,Eleftherios Koutsofios,Stephen C. North,Kiem-phong Vo, IEEE Transactions on Software Engineering

It describes the algorithm used by dot , a graphviz drawing program. 它描述了dot使用的算法,一个graphviz绘图程序。 On the linked page you will find many more references. 在链接页面上,您将找到更多参考。 You will also find some more papers when you google for "drawing directed graphs". 当你谷歌“绘制有向图”时,你还会发现更多的论文。

Also, you might find OpenFst convenient, a general toolkit for finite-state machines. 此外,您可能会发现OpenFst很方便,它是有限状态机的通用工具包。 It has a binary called fstdraw , which will output a finite-state machine in a format that can be read by dot . 它有一个名为fstdraw的二进制文件 ,它将以可以通过dot读取的格式输出有限状态机。

Maybe, I'm a little late in answering this question. 也许,我回答这个问题有点晚了。 Anyway this is a very comprehensive reference to the different types of graphs and the algorithms to visualize them. 无论如何,这是对不同类型的图形和可视化它们的算法的非常全面的参考。

http://www.cs.brown.edu/~rt/gdhandbook/ http://www.cs.brown.edu/~rt/gdhandbook/

Check out Graphviz . 查看Graphviz It's an open source graph visualization software. 它是一个开源图形可视化软件。

EDIT: Check out the documentation section which links to some of the layout algorithms used. 编辑:查看文档部分链接到使用的一些布局算法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM