[vtkusers] Visualizing 2D array of data in VTK
David Doria
daviddoria+vtk at gmail.com
Sat Mar 20 08:21:47 EDT 2010
On Fri, Mar 19, 2010 at 11:40 PM, Asad Mahmood <asadthemahmood at gmail.com>wrote:
> Hi,
>
> I'm fairly new to VTK so I was wondering what was the best way to visualize
> a 1D array of doubles in a grid format. Thinking that a 3D grid would be the
> best way to represent the data, I first converted the 1D array to a 3D
> array:
>
> double V1array[ ][ ][ ] = new double[numRows][numColumns][1];
> int k = 0;
> for (int a=0; a<numRows; a++){
> for (int b=0; b<numColumns; b++){
> for (int c=0; c<1; c++){
> V1array[a][b][c] = Varr1[k];
> k+=1;
> }
> }
> }
>
> I then created an instance of vtkStructuredGrid, set its dimensions as
> numRows, numColumns and 0 and then added the data to the grid through
> vtkPoints:
>
> vtkStructuredGrid V1 = new vtkStructuredGrid();
> V1.SetDimensions(numRows, numColumns, 0);
> vtkPoints points = new vtkPoints();
> for (int a=0; a<numRows; a++){
> for (int b=0; b<numColumns; b++){
> for(int c=0; c<1; c++){
> points.InsertNextPoint(V1array[a][b][c],0,0);
> }
> }
> }
> V1.SetPoints(points);
>
> I then set the geometry of the grid with StructuredGridGeometryFilter and a
> gridMapper and set the Actor, Renderer and Render Window:
>
> vtkStructuredGridGeometryFilter plane = new
> vtkStructuredGridGeometryFilter();
> plane.SetInput(V1);
>
>
> vtkPolyDataMapper sgridMapper = new vtkPolyDataMapper();
> sgridMapper.SetInputConnection(plane.GetOutputPort());
>
> vtkActor sgridActor = new vtkActor();
> sgridActor.SetMapper(sgridMapper);
> sgridActor.GetProperty().SetRepresentationToWireframe();
> sgridActor.GetProperty().SetColor(0, 0, 0);
>
> vtkRenderer renderer = new vtkRenderer();
> vtkRenderWindow renWin = new vtkRenderWindow();
> renWin.AddRenderer(renderer);
>
> vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor();
> iren.SetRenderWindow(renWin);
>
> renderer.AddActor(sgridActor);
> renderer.SetBackground(1,1,1);
> renderer.ResetCamera();
> renWin.SetSize(500,500);
>
> renWin.Render();
> iren.Start();
>
> However, all I get is a white screen for my render window and not a numRows
> X numColumns grid containing my data points. Any suggestions on how to fix
> my code and get a properly dimensioned grid of data? I intend on then using
> a LookUp Table to color code the data points in the grid so I first need a
> grid filled with all the data.
>
> Thanks!
>
>
Have a read of this:
http://www.vtk.org/Wiki/VTK/Tutorials/GeometryTopology
It looks like you only have geometry, and no topology. An easy way to get
vertex (1D) topology is to apply:
http://www.vtk.org/Wiki/VTK/Examples/vtkVertexGlyphFilter
to your StructuredGrid.
Hope that helps,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100320/30622e5b/attachment.htm>
More information about the vtkusers
mailing list