看看Graphviz,这是一套图形布局工具和库,它被许多其他程序用于绘制图形,如Doxygen和KCacheGrind。
您可以将其用作库,以链接;或者写出一个文件,调用可执行文件来处理它并重新读取文件。第二种(文件写入/处理/读取)方法是最常用的。
要做到这一点,你:
- 以点格式(简单文本格式)写出图表(您的FSM)。
- 使用输出格式
dot
调用dot
(其中一个graphviz工具),这会将布局信息附加到文件
- 重新读取点文件并使用位置信息
醇>
有几个库可以执行此操作,包括Python,请参阅pydot。