[vtkusers] visualizing 3D vector field (arrows)
Rocco Gasteiger
post at rocco-gasteiger.de
Thu Oct 8 03:27:48 EDT 2009
Hi Eliya,
one way is to use vtkGlyph. Below I give you a python-code example from the
vtk-website.
It attempts a structured grid as input with a valid vector dataset as point
data.
import os
try:
VTK_DATA = os.environ['VTK_DATA']
except KeyError:
VTK_DATA = '../../../vtkdata/'
from libVTKCommonPython import *
from libVTKGraphicsPython import *
# create selected cones
from colors import *
ren = vtkRenderer()
renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# create pipeline
#
reader = vtkStructuredPointsReader()
reader.SetFileName(VTK_DATA + "/carotid.vtk")
threshold = vtkThresholdPoints()
threshold.SetInput(reader.GetOutput())
threshold.ThresholdByUpper(200)
mask = vtkMaskPoints()
mask.SetInput(threshold.GetOutput())
mask.SetOnRatio(10)
cone = vtkConeSource()
cone.SetResolution(3)
cone.SetHeight(1)
cone.SetRadius(0.25)
cones = vtkGlyph3D()
cones.SetInput(mask.GetOutput())
cones.SetSource(cone.GetOutput())
cones.SetScaleFactor(0.5)
cones.SetScaleModeToScaleByVector()
lut = vtkLookupTable()
lut.SetHueRange(.667,0.0)
lut.Build()
vecMapper = vtkPolyDataMapper()
vecMapper.SetInput(cones.GetOutput())
vecMapper.SetScalarRange(2,10)
vecMapper.SetLookupTable(lut)
vecActor = vtkActor()
vecActor.SetMapper(vecMapper)
# contours of speed
iso = vtkContourFilter()
iso.SetInput(reader.GetOutput())
iso.SetValue(0,190)
isoMapper = vtkPolyDataMapper()
isoMapper.SetInput(iso.GetOutput())
isoMapper.ScalarVisibilityOff()
isoActor = vtkActor()
isoActor.SetMapper(isoMapper)
isoActor.GetProperty().SetRepresentationToWireframe()
isoActor.GetProperty().SetOpacity(0.25)
# outline
outline = vtkOutlineFilter()
outline.SetInput(reader.GetOutput())
outlineMapper = vtkPolyDataMapper()
outlineMapper.SetInput(outline.GetOutput())
outlineActor = vtkActor()
outlineActor.SetMapper(outlineMapper)
outlineProp=outlineActor.GetProperty()
outlineProp.SetColor(0,0,0)
# Add the actors to the renderer, set the background and size
#
ren.AddActor(outlineActor)
ren.AddActor(vecActor)
ren.AddActor(isoActor)
ren.SetBackground(1,1,1)
renWin.SetSize(500,500)
#renWin SetSize 1000 1000
ren.SetBackground(0.1,0.2,0.4)
ren.GetActiveCamera().Zoom(1.5)
iren.Initialize()
# render the image
#
iren.Start()
I hope this will helpt you.
Best regards,
Rocco
--------------------------------------------------
Dipl.-Ing. Rocco Gasteiger
Otto-von-Guericke University
Faculty of Computer Science
Department of Simulation and Graphics
Universitätsplatz 2, 39106 Magdeburg, Germany
Office: G29-223
Phone: +49 391 67 127 59
Fax: +49 391 67 111 64
Website: http://wwwisg.cs.uni-magdeburg.de/cvcms/
--------------------------------------------------
From: vtkusers-bounces at vtk.org [mailto:vtkusers-bounces at vtk.org] On Behalf
Of ???? ?????
Sent: Thursday, October 08, 2009 5:05 AM
To: vtkusers at vtk.org
Subject: [vtkusers] visualizing 3D vector field (arrows)
Hello all,
I'm interested in phase diagrams,
how to deal with visualizing a grid of 2D vectors (represented as arrows)?
thank you,
Eliya
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20091008/59db84a7/attachment.htm>
More information about the vtkusers
mailing list