[vtkusers] Change Contour Colors

Andrew Maclean andrew.amaclean at gmail.com
Mon Jul 2 18:37:30 EDT 2012


 Hi Derek,
   You might like to look at:
http://www.vtk.org/Wiki/VTK/Examples/Python/CurvaturesDemo
This shows you how to use a diverging colour space very nicely!
To choose other colour spaces and to extend this look at the C++ code
referred to in the document
http://www.cs.unm.edu/~kmorel/documents/ColorMaps/ColorMapsExpanded.pdf
by Kenneth Moreland,
this is a very good article.

Regards
   Andrew


---------- Forwarded message ----------
> From: Derek Gaston <friedmud at gmail.com>
> To: vtkusers at vtk.org
> Cc:
> Date: Sun, 1 Jul 2012 15:15:53 -0600
> Subject: [vtkusers] Change Contour Colors
> Hello all.
>
> I'm writing a bit of custom Python with Qt and VTK to add some
> visualization to a small PyQt GUI we have.
>
> I need to read ExodusII and just do some simple contour plotting of what's
> in there with a color scale/legend (I also draw the edges so you can see
> the mesh).  I have it basically working at this point (although hardcoded
> to a specific variable name... but I'll change that later). But I'm hung up
> at trying to change the colors of the contours.
>
> All I want is very simple.  Right now it generates from Red to Blue (low
> to high)... all I need is for it to go from Blue to Red (BTW - why the heck
> is Red to Blue the default... shouldn't Blue to Red be the default?  I
> think most people associate Red with a high color... especially if you are
> plotting temperature... but that's beside the point).
>
> I've looked at vtkLookupTable and vtkColorTransferFunction... but I can't
> seem to come up with the right magic.  Basically, what I want is just the
> simple Blue to Red HSV color bar that you can get in Paraview by choosing
> that preset.  Any help would be awesome!
>
> Here is my current code (it's in a Python class that inherits from QWidget
> and uses a QVTKWidget2 that is initialized elsewhere):
>
>
>
>     self.file_name = file_name
>     reader = vtk.vtkExodusIIReader()
>     reader.SetFileName(self.file_name)
>     reader.UpdateInformation()
>     reader.SetAllArrayStatus(vtk.vtkExodusIIReader.NODAL, 1)
>     reader.SetAllArrayStatus(vtk.vtkExodusIIReader.NODAL_TEMPORAL, 1)
>     reader.SetTimeStep(1)
>     reader.Update()
>
>     cdp = vtk.vtkCompositeDataPipeline()
>     vtk.vtkAlgorithm.SetDefaultExecutivePrototype(cdp)
>
>     geom = vtk.vtkCompositeDataGeometryFilter()
>     geom.SetInputConnection(0,reader.GetOutputPort(0));
>     geom.Update()
>
>     data = geom.GetOutput()
>     data.GetPointData().SetScalars(data.GetPointData().GetArray("u"))
>     mapper = vtk.vtkPolyDataMapper()
>     mapper.SetInput(data)
>     mapper.ScalarVisibilityOn()
>     mapper.SetColorModeToMapScalars()
>     mapper.SetColorMode(2)
>     mapper.SetScalarRange(0,1.0)
>
>     actor = vtk.vtkActor()
>     actor.SetMapper(mapper)
>     self.renderer.AddActor(actor)
>
>     edge_geom = vtk.vtkCompositeDataGeometryFilter()
>     edge_geom.SetInputConnection(0,reader.GetOutputPort(0));
>     edge_geom.Update()
>
>     edges = vtk.vtkExtractEdges()
>     edges.SetInput(edge_geom.GetOutput())
>     edge_mapper = vtk.vtkPolyDataMapper()
>     edge_mapper.SetInput(edges.GetOutput())
>
>     edge_actor = vtk.vtkActor()
>     edge_actor.SetMapper(edge_mapper)
>     edge_actor.GetProperty().SetColor(0,0,0)
>
>     self.renderer.AddActor(edge_actor)
>
>     scalar_bar = vtk.vtkScalarBarActor()
>     scalar_bar.SetLookupTable(mapper.GetLookupTable())
>     scalar_bar.SetTitle("u")
>     scalar_bar.SetNumberOfLabels(4)
>
>     self.renderer.AddActor2D(scalar_bar)
>
>     # Avoid z-buffer fighting
>     vtk.vtkPolyDataMapper().SetResolveCoincidentTopologyToPolygonOffset()
>
>
>     self.renderer.ResetCamera()
>     self.vtkwidget.updateGL()
>
>

-- 
___________________________________________
Andrew J. P. Maclean

___________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120703/c0125d45/attachment.htm>


More information about the vtkusers mailing list