2017-05-08 44 views
-1

我被要求构建Petri网引擎以用作工作中内部工作流的基础。将Petri网生成为SVG的工具

到目前为止,我已经能够生成所有的逻辑和行为(我已经创建了一个“服务台”类型的工作流来测试规则和条件),并且它一切正常。

然而,事实证明这有点痛苦,那就是使Petri网可视化并使这种可视化自动化。

我一直在考虑看看SVG拉图程序,如: http://flowchart.js.org(流程图) https://bramp.github.io/js-sequence-diagrams/(序列图)

我也很想要么修改其中的一个或找到一个类似作为基础,但我面临一个意想不到的问题:我完全不熟悉处理自动放置多个并发连接和分支的复杂绘图例程和理论。

上面的两个例子很简单,但在Petri网中,您可能会有一个地方产生多个转换,即使处理不当,简单的网络也很容易变得笨拙的图表。

解决此问题的最佳方法是什么?

+0

我认为最好的方法是像这样的d3力图; https://jsfiddle.net/tangentstorm/bjp5nv4a/ – Chris

+0

谢谢。我看到了这一点,但无法使它工作得足够好,以确保它。我想我可能只是不了解一个简单的可视化算法,它可以帮助构建我需要的图像。 – Eduo

回答

-1

尝试旧的好graphviz软件包它提供了许多图形化的算法。我已经看到它适用于公司工作流程可视化 (PNG我认为虽然,并使用后端)。有一个vis.js版本,vis.js和衍生物,d3杂种,但我从来没有亲自过关。

用于实验和小网有一个免费的服务 https://glitch.com/edit/#!/graphviz?path=README.md:1:0

SVG是支持输出 http://www.graphviz.org/doc/info/output.html

您可能需要大容量高速缓存超过1000节点之间: http://www.graphviz.org/content/drawing-large-petrinet

鲍里斯Stitnicky devoped YPetri与graphviz,(我没有检查svg) 为他工作,可能是为了吨其他工作流可视化工具。

Petri net drawing and code generation