Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import vtk
- import math
- red = [255,0,0]
- blue= [0,0,255]
- green= [0,255,0]
- black= [0,0,0]
- ren = vtk.vtkRenderer()
- renWin = vtk.vtkRenderWindow()
- renWin.AddRenderer(ren)
- iren = vtk.vtkRenderWindowInteractor()
- iren.SetRenderWindow(renWin)
- interactorstyle = iren.GetInteractorStyle()
- interactorstyle.SetCurrentStyleToTrackballCamera()
- camera = vtk.vtkCamera()
- camera.SetClippingRange(-10, 500)
- camera.SetPosition(0, -1, 3000)
- camera.SetFocalPoint(255, 255, 0)
- #camera.SetViewAngle(50)
- #camera.SetViewUp(1, 1, 0)
- ren.SetActiveCamera(camera)
- # first image
- vol = vtk.vtkImageData()
- vol.SetDimensions(512,512,1)
- vol.SetSpacing(1,1,1)
- vol.SetOrigin(0,0,0)
- vol.AllocateScalars()
- vol.SetNumberOfScalarComponents(3)
- vol.SetScalarTypeToUnsignedChar()
- # initialize the image
- scalars = vtk.vtkCharArray()
- for n in range(512):
- for m in range(512):
- x = 512/2 -n
- y = 512/2 -m
- d = math.sqrt(x*x+y*y)
- if ( d < 100 ):
- col = red
- elif (d<200):
- col = green
- else:
- col = blue
- for c in range(3):
- scalars.InsertTuple1( n*(512*3) + m*3 +c, col[c] )
- vol.GetPointData().SetScalars(scalars)
- vol.Update()
- ia = vtk.vtkImageActor()
- ia.SetInput(vol)
- ia.InterpolateOff()
- #then add it to the renderer
- ren.AddActor(ia)
- # with renWin.Render() the update (below) will not be shown
- #renWin.Render()
- # with ren.Render() the update will show
- ren.Render()
- # now modify the image
- for n in range(512):
- for m in range(512):
- x = 512/2 -n
- y = 512/2 -m
- d = math.sqrt(x*x+y*y)
- if ( d < 66 ):
- col = black
- for c in range(3):
- scalars.SetValue( n*(512*3) + m*3 +c, chr(col[c]) )
- vol.Update()
- iren.Initialize()
- iren.Start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement