Automatic flowchart tool [closed]

2020-02-16 12:25发布

问题:


Want to improve this question? Update the question so it's on-topic for Stack Overflow.

Closed 4 years ago.

Is there a flowchart tool that will automatically draw (align, reposition) a chart based on given information?

I'd like to add blocks to a chart, create relationships between them and then have the software reposition the blocks and lines so it can be easily readable. Then I can add more blocks/relationships and repeat the process.

Basically, I want to design a program in flowcharts without the hassle of planning where would I put what visually.

I know there are a lot of tools for drawing a flowchart (eg. Visio, Dia, LucidChart, etc), but I'm asking for one with this functionality (I don't know if they have it or not).

I'm not asking for the BEST one, I just want ANY that will do the job.

Ideas?

EDIT: While DOT engine is a great tool, it's input system doesn't work for me. I'd like to be able to edit the chart as is (without having to input data via text language) and then have a button or something that would realign all the elements in a way the are easily readable (eg. as few relationship crossing as possible and similar).

回答1:

code2flow is an online pseudo-code to flowchart generator which should do what you ask, just click on the image to play with it:



回答2:

Very basic tool graphviz does all the layout for you.
Example:

graph g {
  node[shape=rectangle]
  a--b
}

Draws this:

But there are plenty of other options, shapes, etc, you can try here: http://sandbox.kidstrythisathome.com/erdos/

EDIT: for WISIWIG editor look here: Is there any good IDE or WYSIWYG editor for graphviz?

Looks like http://www.pixelglow.com/graphviz/ is the best option.



回答3:

Graphviz dot is a graph layout engine that outputs graphs in a choice of formats (e.g. PDF, SVG) based on an input file that defines the nodes and arcs. It's flexible enough that you could use it to do what you want, but there'd probably be quite a bit of up-front effort involved.



回答4:

As far as I understand, the feature you are looking for in graph drawing is called "incremental layout" or "partial layout".

Incremental layout will help you make incremental changes to a graph or network (adding or removing nodes or edges) and then will recalculate the layout ("align the nodes"), adjust the edge paths and possibly rearrange the labels in order to get a nice new picture. The difference to a full layout from scratch is that the location of the existing elements is considered for the new layout and new elements are inserted into the drawing in order to not completely destroy the mental picture of the drawing in the mind of the user. This might result in the original elements being moved (e.g. in order to compact regions where elements have been removed), but the relative positions of the existing elements to each other is kept.

Partial layout will not change any of the existing elements but will apply the new layout to that part of the graph that is "new", only. This keeps the locations and paths of the existing elements, but might lead to less optimal results.

To my best knowledge these features are available only in very few graph drawing libraries. Only for the conceptionally very simple algorithms (those based on spring embedders and maybe tree layouts), this feature is easy to implement and thus might be available in more libraries.

The company I work for provides the yFiles Graph Drawing Libraries for Java, .net, and Javascript. These libraries support these types of layouts. The only other library that I am aware of that should be able to supports these kind of features is TomSawyer Layout.



回答5:

Check this logical process flowcharts: http://flow.oodupinc.com/. The usage example http://oodupinc.blogspot.com/.

It's collaborative, free and you can manage the node descriptions independently from flowcharts and use them in the modular system of flowcharts. Moreover, you get XML specification of the flowcharts to generate rich graphical application (HTML+SVG+CSS) or other manipulations. Currently, new users have to request a user account through email. The flowchart is drawn from specification using the flowcharting rules like links flow to down and right.