[英]streamLines in VTK
我已經可視化了來自vtk文件的一些箭頭,現在我正在嘗試使用VTK包來可視化python中的流線。 我可以得到箭頭,但不能得到streamLines。 編碼;
# File: wind.py
from vtk import *
reader = vtkStructuredPointsReader()
reader.SetFileName("wind.vtk")
reader.Update()
cubeOutline = vtkOutlineFilter()
cubeOutline.SetInputConnection(reader.GetOutputPort())
cubeMapper = vtkPolyDataMapper()
cubeMapper.SetInputConnection(cubeOutline.GetOutputPort())
cubeActor = vtkActor()
cubeActor.SetMapper(cubeMapper)
cubeActor.GetProperty().SetColor(1.0,1.0,1.0)
arrow = vtkArrowSource()
arrow.SetTipRadius(0.2)
arrow.SetShaftRadius(0.075)
arrowGlyph = vtkGlyph3D()
arrowGlyph.SetInputConnection(reader.GetOutputPort())
arrowGlyph.SetSource(arrow.GetOutput())
arrowGlyph.SetScaleFactor(0.05)
arrowMapper = vtkPolyDataMapper()
arrowMapper.SetInputConnection(arrowGlyph.GetOutputPort())
arrowActor = vtkActor()
arrowActor.SetMapper(arrowMapper)
points = vtkPointSource()
points.SetRadius(3.0)
points.SetNumberOfPoints(20)
streamers = vtkStreamLine()
streamers.SetInputConnection(reader.GetOutputPort())
streamers.SetSource(points.GetOutput())
streamers.SpeedScalarsOn()
streamers.SetMaximumPropagationTime(100)
streamers.SetIntegrationStepLength(0.2)
streamers.SetTerminalSpeed(0.1)
streamMapper = vtkPolyDataMapper()
streamMapper.SetInputConnection(streamers.GetOutputPort())
streamMapper.SetScalarRange(reader.GetOutput().GetScalarRange())
streamActor = vtkActor()
streamActor.SetMapper(streamMapper)
ren = vtkRenderer()
ren.SetBackground(.2, .2, .2)
renWin = vtkRenderWindow()
renWin.SetSize(800, 600)
renWin.AddRenderer( ren )
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow( renWin )
ren.AddActor(cubeActor)
ren.AddActor(arrowActor)
ren.AddActor(streamActor)
renWin.Render()
iren.Initialize()
iren.Start()
我看不到我想念的東西。
我幾乎沒有可視化簡化流程的經驗,而我的經驗是使用vtkteem(vtkSeedTracts)。
我假設您指定的點用作形成流線的種子。 如果是這樣,您是否還不應該為這些點指定位置? 我不知道您的數據是什么樣的,但是我感覺到流線不可見,因為沒有正確指定種子點。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.