2014-09-23 8 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

actor2의 위치 설정 때문입니다. 두 번째 디스크가 카메라에 더 가깝고 더 크게 보입니다.

거리를 줄이거 나 제거하십시오.

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

안녕하세요, 귀하의 답변 주셔서 감사합니다.하지만 그것이 정확하다고 생각하지 않습니다. 설정 위치 라인을 꺼내면 같은 위치에 디스크가 여전히 같은 크기가됩니다. 내가 0.1의 제안에 대한 z 거리를 다시 줄이면 디스크는 같은 크기가됩니다. – BloodSexMagik

+0

게시 된 코드로이를 테스트했으며 작동합니다. – JohnnyQ

+0

죄송합니다. 내 코드에서 다른 실수가있었습니다. 감사 – BloodSexMagik