2016-06-13 3 views
0

실린더를 회전시켜 파이프 모델을 만들었지 만 공통 부분을 필터링하는 방법을 모르겠다. 실린더를 만들고 원을 그리며 회전시키는 for 루프를 실행 중이다. 이것은 내가 루프에서 위치를 설정해야 할 문제가있다, 나는반복성을 사용하여 vtk에서 파이프 모델을 만드는 방법

import vtk 
import math 
import wx 
# create a rendering window and renderer 
ren = vtk.vtkRenderer() 
renWin = vtk.vtkRenderWindow() 
renWin.AddRenderer(ren) 

# create a renderwindowinteractor 
iren = vtk.vtkRenderWindowInteractor() 
iren.SetRenderWindow(renWin) 
i=0 
sourc=[] 
mapper=[] 
actor=[] 


for i in range(0,360): 
    sourc.append(vtk.vtkCylinderSource()) 
    sourc[i].SetRadius(0.3) 
    sourc[i].SetHeight(6) 

    sourc[i].SetCenter(2*math.cos(i),0,2*math.sin(i)) 
    sourc[i].SetResolution(100.0) 
    sourc[i].Update() 

    mapper.append(vtk.vtkPolyDataMapper()) 
    mapper[i].SetInput(sourc[i].GetOutput()) 

    actor.append(vtk.vtkActor()) 
    actor[i].SetMapper(mapper[i]) 
     #actor[i].SetPosition(0,2*math.cos(j),2*math.sin(j)) 
     #actor[i].RotateZ(j) 
    actor[i].GetProperty().SetOpacity(1) 

     #actor[i].SetPosition(2*cos(i),2*sin(i),0) 
    ren.AddActor(actor[i]) 

    i=i+1 
# create source 
# 
transform = vtk.vtkTransform() 
transform.Translate(0.0, 0.0,0) 

axes = vtk.vtkAxesActor() 
# The axes are positioned with a user transform 
axes.SetUserTransform(transform) 



ren.AddActor(axes) 



# enable user interface interactor 
iren.Initialize() 
renWin.Render() 
iren.Start() 
+0

더 구체적으로 할 수 있습니까? 시각화 란 무엇입니까? 무엇을보고 싶습니까? – MrPedru22

답변

0

하나 개를 사용하여 vtkAppendPolyData을에 여러 개의 PolyData 객체를 추가하려면이 내 코드입니다 를 사용 후 하나 polydata 객체에 모든 실린더를 부착 할 대상 :

import vtk 

append = vtk.vtkAppendPolyData() 

for i in range(0, 360): 
    (...) 
    append.SetInputData(sourc[i].GetOutput()) 

append.Update() 

그러면 액터를 추가하고 루프 외부로 렌더링 할 수 있습니다.