I'm thinking of writing few blogs on arrays and linked list and for that I need some good drawing tool for drawing images to explain the concept and the logic. I don't want to copy/paste images from other source so if anyone among you knows about any such tool in which I can create images fast and similar to ones given in books and on other site, please let me know.
Graphviz can draw linked data structures by using special "record" node shapes. Here's one example which was automatically generated during a debug session.
I believe that Google Docs Draw, could satisfy your needs.
http://googlesystem.blogspot.com/2009/03/drawing-in-google-docs.html
I use Omni Graffle for the sort of task you are describing.
http://www.omnigroup.com/products/omnigraffle/
Related
I need to create web page where user can choose a type of a list (linked, doubly linked, circular linked list etc.) and see how it looks like. User can add and remove elements from a list and see how list is changing.
Which library is better to use for visualization of List? It would be good to find library which can take a list as input param and return image or canvas. But If such library doesn't exists I need library which can draw rectangles with text inside and connect it with each other with lines.
D3.js is more than powerful enough to do what you want. However, if all you want rectangles with in a list, you could use a table or divs for that.
Edit:
To figure out how to do this, I would recommend running through a tutorial on D3. Here are links to several. There is a bit of a learning curve, but once you get over the learning curve, it is very nice. As far as examples, what you want is similar to this or this except your layout is much simpler.
This question may also be helpful
I'm looking for a way to render dependency graphs (puppet resource graphs to be exact) in a human readable way. And by 'readable' I mean easily readable without the need of having to setup a cinema screen just to be able to completely display the relevant part.
Here is such a graph I'm talking about.
If you render it via graphviz' dot -Tpng, it generates a about 16k x 3k pixel image which I absolutely cannot entirely display in any way that I could still read anything that's written there.
I'd like it to be more compact (less white space) and maybe different colors to help keeping track of the relationships more easily. Any hints on how to do that?
PS: The example graph actually is a quite simple one.
Perhaps you could use Gephi to filter the graph...
This post could help.
I am new to d3 geo. My task is to make a map of Boston and add some interactive features to it.
So far I've been able to get an outline of Boston. But the base map should be comparable to something you'd see in Google Maps - it should have buildings, roads, street names and city names, rivers, etc. A basic geography that makes the region more familiar.
For now, I don't need to pan, and may have just two or three zoom states.
All the visualizations I've seen that overlay interactive features onto maps like this seem to use images for the underlying maps: windhistory, polymaps, google maps and more. So I guess my questions are:
Why do some maps use images for the "backdrop"? Is it just the easiest way to build on top of existing maps? Is it more performant?
If I go with the images approach, are there any limitations to the features I can add? I'm hoping to do things like windmaps, animations, heatmaps, etc.
What are the copyright implications for using images? I imagine the answer to this is, "depends on which images I use," but are there some standard libraries that have no strings attached? For example I know if I use Google Maps, I have to display their logo, there's an API limit, etc. Are there any standard sources that are completely open?
Are there any examples where geography is added purely through TopoJSON?
Sorry if some of these seem obvious, but I am completely new to maps and just don't know the standard practices. Thanks for any help!
A quick take on your questions. Hopefully someone with more mapping experience can give you more detail:
Why do some maps use images for the "backdrop"?
File size and computation time, mostly. Drawing complete maps with buildings, roads, and topography requires a lot of data and a lot of time for the browser to render it. If your browser DOM gets too complicated, it can slow down all interactions even after the original drawing.
If I go with the images approach, are there any limitations to the features I can add?
There's a reason most interactive maps use multiple layers. The background images are best for the underlying "lay of the land" type imagery, anything you want to be interactive should be on top with SVG.
What are the copyright implications for using images?
If you're using someone's images, you have to follow their licence. You might want to look at the OpenStreetMap project.
Are there any examples where geography is added purely through TopoJSON?
I suppose that depends on what you mean by "geography"; Mike Bostock has generated topoJSON for a variety of features based on US Atlas data.
As for whether it makes sense: TopoJSON encodes paths/boundaries directly, and encodes regions as the area enclosed by a set of boundaries. You could use it to encode streets and rivers and even building outlines, but you're not saving any file size relative regular GeoJSON because those paths generally aren't duplicated the way that region boundaries are. Relative to using image tiles, any improvement in file size would be countered with increased processing time.
So Id love to see an algorithm for generating 3d cloud objects. as realistic as possible. I know that there are different cloud types But I am moust interested in such cloud tupes like
(source: weather.gov)
(source: weather.gov)
so can any one point to algorithm or just a C\C++\C#\AS3 or any other language lib that can do such thing?
You could try Procedural Generation or even Particle Systems.
Here is a page which seems to have a comprehensive list of various cloud generation methods: Vterrain.Org's page on Clouds.
Hope that helps!
I'm not sure if there's a library that implements this, but this SIGGRAPH paper (http://graphics.cs.brown.edu/games/CartoonSmoke/) outlines a method for generating cartoon clouds that look very much like the one you've posted.
You could do that in any language with any drawing library ! For example, in C++ with Ogre
You could also generate it with a 3D modeler as Blender or 3DSMax, depending on what you want to do with it !
However, I don't know if algorithms to generate clouds are freely available, you should give it a shot in Google.
I'm messing around with image manipulation, mostly using Python. I'm not too worried about performance right now, as I'm just doing this for fun. Thus far, I can load bitmaps, merge them (according to some function), and do some REALLY crude analysis (find the brightest/darkest points, that kind of thing).
I'd like to be able to take an image, generate a set of control points (which I can more or less do now), and then smudge the image, starting at a control point and moving in a particular direction. What I'm not sure of is the process of smudging itself. What's a good algorithm for this?
This question is pretty old but I've recently gotten interested in this very subject so maybe this might be helpful to someone. I implemented a 'smudge' brush using Imagick for PHP which is roughly based on the smudging technique described in this paper. If you want to inspect the code feel free to have a look at the project: Magickpaint
Try PythonMagick (ImageMagick library bindings for Python). If you can't find it on your distribution's repositories, get it here: http://www.imagemagick.org/download/python/
It has more effect functions than you can shake a stick at.
One method would be to apply a Gaussian blur (or some other type of blur) to each point in the region defined by your control points.
One method would be to create a grid that your control points moves and then use texture mapping techniques to map the image back onto the distorted grid.
I can vouch for a Gaussian Blur mentioned above, it is quite simple to implement and provides a fairly decent blur result.
James