tags:

views:

717

answers:

2

Hi All, I am a visual person, if I can visualize something it often makes more sense to me.

Is there a simple way to render data in 3D to use for simple visualizations? What I effectively would like to do is the following:

I have a 3 dimensional Array of Int32's:

Int32[,,] data = new Int32[256,256,256];

I fill this array with data, and would basically want to now render this in a 3D space. X, Y and Z and place a dot where the data is greater than 0. Basic

Being able to change the viewing angle would be a bonus, but not essential.

I have not looked into 3D rendering enough to make use of any of the real 3D engines out there, so the simpler the better.

Any help, pointers would be nice.

Thanks

+1  A: 

Microsoft .Net Chart Control - download here. It's like using the 3D charting in Excel.

Ankur Goel
Thanks for this. Keep it simple is always key, but in this case I do need a little more than just excel type graphs, otherwise excel surface 3D surface graphs would have done the trick. The data I have is fairly complex and would need me to place 3D dots inside a virtual cube where data is present. The thing is that I would need to see the insides of the cube, not only the outer surface of the data.
Gineer
+4  A: 

WPF (Windows Presentation Foundation, included in .net 3.5) makes 3D rendering quite easy (or at least easier than it was before). Have a look at the following tutorial:

http://www.kindohm.com/technical/WPF3DTutorial.htm

It shows how to create a small 3D viewport and position simple elements inside.

Heinzi
I would not recommend WPF / WPF3D simply to get started graphing 3D data. Setting up a 3D scene is not easy - you'll have to create a triangle mesh from the data, light the scene properly, and put the camera in the right location at the right angle. And then you have to learn WPF. That's just to get started. Then you'll probably want to color the mesh for various Z values, and probably put xyz axes on the graph.I'd stick with a chart control, either from Microsoft, or DundasChart.
Ankur Goel
From a quick scan of the article, it doesn't seem simple, but at least simpler than implementing a 3D engine. I'll report back after reading through and attempting the examples in the article.
Gineer
I have now butchered my way through this article and was able to do exactly what I set out to do. I am able to produce a visualization of fairly complex data and zoom and tilt the graph in any direction at runtime. This is by far the example to work through if you would like to get into this type of thing from a .Net point of view.
Gineer