Question

How is it possible to dynamically fill a container? Let's say to fill a big circle with small circles, recursively. Just fill the space fine.

I would like to use it for data hierarchy display.

To make it clear:

alt text

Was it helpful?

Solution

If you want something off the shelf, have a look at Graph#

http://graphsharp.codeplex.com/

videos here:

It does dynamic graph layout and is fairly easy to use. There are a choice of layout algorithms [see sample app] each of which are configurable.

however filling until an area is "full" is not something that'll work out of the box. Although you could for example create a graph, lay it out & then measure the ratio between the size of a vertex and the size of the whole graph, then add or remove vertexes until you hit upon your desired density. I would hazard you could pretty quickly by trial and error come up with a quick and dirty forumula between the size of canvas to fill & the number of vertexes you should add.

Note that you can customise the vertex templates pretty easily to be any kind of data [this is standard wpf but Graph# specific examples can be found on http://graphsharp.codeplex.com/discussions ]

if you wanted to code your own layout you might like to have a look at some of the techniques Graph# use... for example a dynamic zoom component the source for which is available here: http://wpfextensions.codeplex.com/

hope that helps a little

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top