Pyramid
VTKExamples/Python/GeometricObjects/Pyramid
Code¶
Pyramid.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import vtk def main(): colors = vtk.vtkNamedColors() points = vtk.vtkPoints() p0 = [1.0, 1.0, 1.0] p1 = [-1.0, 1.0, 1.0] p2 = [-1.0, -1.0, 1.0] p3 = [1.0, -1.0, 1.0] p4 = [0.0, 0.0, 0.0] points.InsertNextPoint(p0) points.InsertNextPoint(p1) points.InsertNextPoint(p2) points.InsertNextPoint(p3) points.InsertNextPoint(p4) pyramid = vtk.vtkPyramid() pyramid.GetPointIds().SetId(0, 0) pyramid.GetPointIds().SetId(1, 1) pyramid.GetPointIds().SetId(2, 2) pyramid.GetPointIds().SetId(3, 3) pyramid.GetPointIds().SetId(4, 4) cells = vtk.vtkCellArray() cells.InsertNextCell(pyramid) ug = vtk.vtkUnstructuredGrid() ug.SetPoints(points) ug.InsertNextCell(pyramid.GetCellType(), pyramid.GetPointIds()) # Create an actor and mapper mapper = vtk.vtkDataSetMapper() if vtk.VTK_MAJOR_VERSION <= 5: mapper.SetInput(ug) else: mapper.SetInputData(ug) actor = vtk.vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d("Tomato")) # Create a renderer, render window, and interactor renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetWindowName("Pyramid") renderWindow.AddRenderer(renderer) renderWindowInteractor = vtk.vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderer.AddActor(actor) # Create a nice view renderer.ResetCamera() renderer.GetActiveCamera().Azimuth(180) renderer.GetActiveCamera().Elevation(-20) renderer.ResetCameraClippingRange() renderer.SetBackground(colors.GetColor3d("Silver")) renderWindow.Render() renderWindowInteractor.Start() if __name__ == '__main__': main()