2014-09-23 41 views
0

試圖在VTK疊加兩個磁盤使用下面的代碼:VTK,儘管半徑不同,兩個磁盤的大小相同嗎?

source = vtk.vtkDiskSource() 
source.SetInnerRadius(0) 
source.SetOuterRadius(100) 
source.SetCircumferentialResolution(300) 
source.SetRadialResolution(300) 
source.Update() 
mapper = vtk.vtkPolyDataMapper() 
mapper.SetInputConnection(source.GetOutputPort()) 
actor = vtk.vtkActor() 
actor.SetMapper(mapper) 

source2 = vtk.vtkDiskSource() 
source2.SetInnerRadius(0) 
source2.SetOuterRadius(5) 
source2.SetCircumferentialResolution(300) 
source2.SetRadialResolution(300) 
source2.Update() 
mapper2 = vtk.vtkPolyDataMapper() 
mapper2.SetInputConnection(source2.GetOutputPort()) 
actor2 = vtk.vtkActor() 
actor2.SetMapper(mapper2) 
actor2.GetProperty().SetColor(1.0,0.0,0.0) 
actor2.SetPosition(0,0,1) 

ren = vtk.vtkRenderer() 
renWin = vtk.vtkRenderWindow() 
renWin.AddRenderer(ren) 
iren = vtk.vtkRenderWindowInteractor() 
iren.SetRenderWindow(renWin) 

ren.AddActor(actor) 
ren.AddActor(actor2) 

renWin.Render() 
iren.Start() 

這應該放在一個大的白色圓盤和一個較小的紅盤在它的前面。然而,它所做的是呈現兩個磁盤,一個白色和一個紅色在它前面。但是兩個磁盤的大小完全相同。即我必須旋轉它才能看到白色的。 任何想法爲什麼發生這種情況?我覺得答案可能非常明顯!

非常感謝

回答

0

It's因爲actor2你的位置設置。 第二張光碟靠近相機並顯得較大。

減小距離或將其刪除。

例如

actor2.SetPosition(0,0,0.1) 
+0

你好,謝謝你的回答,但我不認爲這是正確的。如果我拿出設置的位置線,那麼磁盤仍然是相同的大小,就在同一個地方。如果我將z距離減少到0.1的建議,那麼磁盤的大小相同。 – BloodSexMagik 2014-09-23 11:53:32

+0

我已經用你的發佈代碼測試過了,它可以工作。 – JohnnyQ 2014-09-23 12:06:08

+0

對不起,您的正確 - 我的代碼中有一個不同的錯誤。謝謝 – BloodSexMagik 2014-09-23 13:48:18

相關問題