<p>将vtkrender对象添加到vtkRenderWindow对象后,您正在修改它。另外,在将vtkRenderWindow对象设置为interactior对象之后,可以修改它。我建议保持有序(一个接一个)</strong>未测试,需要Mesa 10.6.5或更高版本和OpenGL 3.2。或更高版本:</p>
<pre><code># -*- coding: UTF-8 -*-
import vtk
from vtk.util.colors import tomato
if __name__ == '__main__':
cylinder = vtk.vtkCylinderSource()
cylinder.SetResolution(8)
cylinderMapper = vtk.vtkPolyDataMapper()
cylinderMapper.SetInputConnection(cylinder.GetOutputPort())
cylinderActor = vtk.vtkActor()
cylinderActor.SetMapper(cylinderMapper)
cylinderActor.GetProperty().SetColor(tomato)
cylinderActor.RotateX(30.0)
cylinderActor.RotateY(-45.0)
ren = vtk.vtkRenderer()
ren.AddActor(cylinderActor)
ren.SetBackground(0.1, 0.2, 0.4)
ren.ResetCameraClippingRange() #instead of ren.ResetCamera()
#ren.GetActiveCamera().Zoom(1.5) #keep this out for a while (suspicious, because you request a zoom without doing something with it)
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
renWin.SetWindowName("some title") #just a bonus
renWin.SetSize(200, 200)
#style = vtk.vtkInteractorStyleTrackballCamera() #later uncomment this for test
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
#iren.SetInteractorStyle(style) #later uncomment this for test
iren.Initialize()
renWin.Render()
iren.Start()
</code></pre>