Tips on implementing a new layout algorithm in Graphviz - layout

My partner and I are planning on implementing a new graph drawing layout algorithm of our design for use with Graphviz. We are new to Graphviz and though we've explored the source code, we're still unsure how to go about adding new layout functionality. Can you help with any pointers? I am looking for any of the following:
Overview of how other layouts are implemented. What files are most important?
What existing code we can draw upon? For instance, we would like to use an existing force-directed algorithm as part of our own algorithm, and we need to specify the shape of the edges.
Links to other projects that have implemented their own layout algorithm for use with Graphviz. Our searches so far haven't been fruitful, unfortunately.
Thank you very much!
-Kate

Thanks to Emden over on the Graphviz discussion board, we've found that there is a document called addingLayout.txt in the docs folder of the source code that is a guide for what we need to do. Emden elaborates further, with details about force-directed algorithms and how edges are described in Graphviz, on this thread: http://www.graphviz.org/content/how-implement-new-layout-style-graphviz --> fixed link at https://graphviz.gitlab.io/_pages/doc/addingLayout.txt

Related

How do I get functional graphics from freepascal?

I've been all over the documentation, and there's nothing comprehensive on the subject of graphics. I know it's possible; I've seen freepascal projects that include functional graphics, but haven't been able to replicate the effect myself.
The basics will be sufficient; lines, polygons, possibly text. Any features beyond that (png support, gradients, resizable window, etc) would be appreciated, but unnecessary. The purpose of this question is to find a workable, testable starting point, not to pick out the best libraries for a given purpose.
If it helps, I'm using Lazarus and I have some experience with Pascal as a whole, but I've been away from it since 2007.
simple graphics starting point
Canvas Drawing: https://wiki.lazarus.freepascal.org/Drawing_with_canvas
Using BGRA (open source drawing lib): https://wiki.lazarus.freepascal.org/BGRABitmap
Library list (not complete but a good start):) https://wiki.lazarus.freepascal.org/Graphics_libraries
Also, I'd like to point out that a lot can be found by searching the fpc wiki, or by visiting the forums,
Here's the "Graphics" forum board,
https://forum.lazarus.freepascal.org/index.php/board,39.0.html

Easiest way to generate depth image/map from 3d model

I was wondering if anybody knew of an easy, robust way to generate depth images from 3d models (i.e. surface models, vertices with faces), with specifiable camera parameters.
I'd prefer "free" options if possible (e.g. pyOpengl or some open source Java library rather than say matlab).
I believe it is possible with the python blender api (noted here), but I'm hoping there's an easier way.
Note also that this question works only for that special case.
You can use DECA repository in Github. There, in ./demos, I used demo_reconstruct.py code to save the depth image.

VTK alternatives

I apologize if the answer was already somewhere, searching the interwebs did not return me the answer(s) I was looking for.
Situation : I have a small graph (a set of Edges and Nodes that is) - Now I want to display it in an interactive manner, and I would like to manipulate the display styles and symbols that are used for edges and nodes, programetically.
Hence kgraphviewer wont work - i want to do it programetically as stated.
I noticed VTK, comes with a lot of built is graph drawing algorithms. But seems to be a really large one.
Question : What are some alternatives to VTK ? Graphviz is probably one, but I can not confirm that graphviz comes with all the graph drawing algorithms as VTK - any other possibly smaller options, with all the built in graphs?
Side note : Some systems uses a static drawign widget, i.e. once the drawing is displayed, in an widget that the system comes with, you can not interact with the drawing using your mouse. The GNU implementation of IDL, GDL, has this problem. I would Like to avoid this.
Yes, I agree with you regarding the VTK's consideration: it's a powerful toolkit but it is (maybe) too much "big", and it's not so easy to configure a working VTK environment.
I don't have a great experience in the field of graphs, but a search leads to this other StackOverflow post. I think that Prefuse, listed under the Java section, could be of some interest. C++ itself seems to have a lot of choices, listed in various answers, here. I hope that it will help.
I used Gephi public domain graph visualization software on Linux. It was a quick way to get a 3 D. Picture which can be modified with line thickness to show an edge weight - good for comm network work.

What kind of tool can be use to produce this graph?

I am new at graphing tools for big data analysis. Though the following is not from big data, I was wondering what kind of tools are used to create this kind of complex graph:
http://www.bitmover.com/lmbench/mem_lat3.pdf
Associated with the paper http://www.bitmover.com/lmbench/lmbench-usenix.pdf
The article is made in LaTeX (particulary groff project), according to metadata in the chart's PDF, it's saved to PDF from Photoshop (so this lead ends here). Anyway, the TikZ or Asymptote (see gallery) are capable of drawing charts like this..
Looks a little bit like gnuplot, but it can be perfectly done by matplotlib. An example can be found at this page.
Sorry, I never noticed this question before. Larry borrowed that graphic from me and it was created with Excel.
I was considering adding code to lmbench to create that plot automatically and Thorsten's suggestion of mplot3d sounds like a good place to start.

Package for drawing queue networks with LaTeX?

Does anyone know how to draw queue network graphs that can be included within LaTeX documents?
See, e.g., the following examples at TeXample.net for the TikZ and PGF packages:
Graphs
Automata and Petri nets
Use METAPOST for your problem.
There are many ways to include drawings/graphs/images in your latex document.
The easiest way is just to draw the graph in your drawing program of choice, then export the graph to jpg or png (or eps if you're not using PDFlatex), then use the graphicx package ( \usepackage{graphicx} in your preamble), and include the graph in your document by using the code
\includegraphics[width=4in]{filename.jpg}
As indicated in other answers, there are several drawing languages that can be used with tex: metapost, tikz, and PGF are are powerful. There is also asymptote, another code based drawing language.
You could also use graphviz, which is excellent if your graph is large and you need graph something like network traffic. And dot2tex will turn your graphviz file into something latex can handle.

Resources