As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
In graph theory, a planar graph is a graph that can be embedded in the plane, i.e., it can be drawn on the plane in such a way that its edges intersect only at their endpoints.
Their are many algorithms which exist for planar graph testing (i.e. determining if a given graph is Planar). The best ones are in O(n) where n is the number of vertices.
Which open source programs exist which support the following features:
Can Draw Planar Graphs
Support an O(n) Planar graph testing.
Support variable node size.
Support fixed drawing boundary region
Are open source
I have a few pointers for graph visualization methods:
Prefuse - original version is in Java and the newer stuff is flash.
Graphviz
Networkx with matplotlib - all in python
Ubigraph - for animated 3D visualization
I've found this one useful for all kinds of 2D work..
http://www.yworks.com/en/products_yed_about.html
It's java based so you should be able to run it anywhere you have a suitable jvm.
Graphanalyzer
From the site...
...
Graphanalyzer is an environment for visualization of graphs.
Graphanalyzer provides abilities for creating, processing of graphs
and shows the results of visualization. Program supports oriented and
nonoriented graphs, weighted and non weighted graphs. Program includes
many algorithms for graph processing, from path finding to planar
checking. This program is an irreplaceable helper for solving tasks
occurring in the graph theory. Visualization of graph and algorithm.
...
I'd suggest use build your own using boost-graph libraries. A good information can be found on Donald knuth home page. There are some softwares which I have not used very much. Graphthing is one of those. I do not think it'll meet your requirement. If you are a research guy, then I personally recommend not to be inclined towards visualization of graphs.
Related
I'm using a tutorial (https://www.tidytextmining.com/nasa.html?q=correlation%20ne#networks-of-keywords) to learn about tidy text mining. I am hoping someone might be able to help with two questions:
in this tutorial, the correlation used to make the graph is 0.15. Is this best practice? I can't find any literature to help choose a cut off.
In the graph attached from the tutorial, how are clusters centrality chosen? Are more important words closer to the centre?
Thanks very much
I am not aware of any literature on a correlation threshold to use for this kind of network analysis; this will (I believe) depend on your particular dataset and how language is used in your context. This is a heuristic decision. Given what a correlation coefficient measures, I would expect 0.15 to be on the low side of what you might use.
The graph is represented visually in a two-dimensional plot via the layout argument of ggraph. You can read more about that here but the very high-level takeaways are that there are a lot of options, they have a big impact on what your graph looks like, and often it's not clear what is the best choice.
Disclaimer: I'm not 100% on whether this is a well-formed question, so please feel free to comment and suggest improvements. I'll be actively looking out for ways to improve this question.
I have a triangle mesh, let's say the Stanford Bunny. Now, I want to raycast a ray from a source point in 3D along a 3D direction vector, and identify just the first intersection of that ray with the triangle mesh.
I already have a naive implementation cooked up. However, I'm looking for a more advanced implementation. In particular, I'll be casting many millions of rays in many directions, so I'm looking for a multi-threaded or GPU-accelerated implementation.
I have to believe that there must be some pretty complete projects online, as raycasting triangle meshes is a fundamental part of 3D computer graphics. However, I can't find anything beyond personal projects, which leads me to believe that I am using the wrong search terms, or something pretty simple along those lines.
I am looking for suggestions on existing tools that can raytrace polygonal meshes.
If all you need to do is find the distance to the mesh for millions of rays. Then it might be a good idea to look up CUDA raytracing tutorial online. This will show you how to cast many millions of rays. In most tutorials, raytracing is used to render to the screen with the camera matrix. However, this is not necessary. Simply adjust the rays starting parameters to what you need them to be such as 3D vector and position. Then output the data back to the CPU. Be weary of the bandwidth between the GPU and CPU sending millions of intersection points between the CPU and GPU can make the program run exceptionally slow.
I need to find minimum spanning trees in a large graph using graph-viz. The number of nodes and edge information will be given in another text-file in 2 columns,"source" and "destination". please help.
Graphviz is principally a tool to layout graphs. The algorithms that are included relate to this task. The input for a graph is a graph specification.
What you need is a tool that computes the MST. There are several. The wikipedia article is a good start for references:
http://en.wikipedia.org/wiki/Prim's_algorithm
In python there is
http://pygraphviz.github.io/
In perl, I found
https://gist.github.com/hirotnk/780342
The SO answer here:
Graphviz Dot Algorithm
is also a good reference.
Given the output of an MST tool, you can general a file that is rendered by graphviz.
I have many 3D vectors. I want to plot them in a cube so that each dimension is on a particular side of the cube.
Now, I am looking for some visualization/tool or library that lets me rotate this cube in 3D and see the vectors in various different angles.
Thanks
Abhishek S
Try Processing, it is somewhat intended for data visualization and in addition to simple control over 3D drawing, it also has the full power of Java programming language. You can see numerous works, done by other people on OpenProcessing.
However, if you are into anything serious, I would suggest you to use some ohter IDE than the default one. I use Eclipse for that, importing Processing as a library into my project. It requires a tiny boilerplate to work, but then you're happy!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Does anyone know any good book or web resource for geometric and mathematical fundamentals of augmented reality?
Thanks!
Here's a good library for Augmented Reality:
ARToolKit
Ports to various platforms:
NyARToolKit
A simple but still impressive sample application using this library:
Project Marble
A great read is Chapter 10 of the Black Art of 3d Game Programming. All the AR/3D maths you'll ever need is there.
Once you've mastered this stuff, you'll be ready for 3d spatial projections etc, for AR/Target tracking.
I can't point any specific book right now, but depending on your math background I'd suggest go in this order
Vector and Linear algebra, intermediate level, up to matrix operation, LU decomposition, cross product.
Projective geometry, up to homogenious coordinates, planar homography
3d graphics, viewing and projection matrix, frustum
Basics of image processing, thresholds, edge detection, line detection
After those 4 two you can understand rectangular marker tracking
Calculus of many variables, Fourier transform, DFT
Least squares method
Intermediate linear algebra, eigenvalues, eigenvectors, SVD
Advanced numerical methods, nonlinear least-squares, Gauss-Newton, Levenberg-Marquardt
Advanced image processing, blob detection SIFT/SURF/FAST
Intermediate projective geometry: Essential and fundamental matrices, epipolar geometry
Bundle adjustment
After that you can understand markerless tracking
And some more advanced math which is used in cutting edge AR:
Understanding of basics of Lie groups and algebras
Statistics, robust estimators
Quaternions
Kalman filters
Clifford algebras (Geometric algebra) - generalization of quaternions
Wavelets
Advanced projective geometry (like trifocal tensor, 5-point algorithm)
I'd recommend the following two books. Both are pricey but contain lots of really useful stuff in Projective Geometry which is what you need to know.
It's hard going though so unless you really want to understand the maths behind it you may want to use a third party library as suggested above.
Multiple View Geometry in Computer Vision by Hartkey and Zisserman
and
Three Dimensional Computer Vision: A Geometric Viewpoint by Faugeras