Dodecahedron
vtk-examples/Python/GeometricObjects/Dodecahedron
Other languages
See (Cxx)
Question
If you have a question about this example, please use the VTK Discourse Forum
Code¶
Dodecahedron.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import vtk
def main():
colors = vtk.vtkNamedColors()
dodecahedron = MakeDodecahedron()
# Visualize
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(dodecahedron.GetPolyData())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(
colors.GetColor3d('PapayaWhip'))
renderer = vtk.vtkRenderer()
renderWindow = vtk.vtkRenderWindow()
renderWindow.SetWindowName('Dodecahedron')
renderWindow.AddRenderer(renderer)
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)
renderer.AddActor(actor)
renderer.SetBackground(colors.GetColor3d('CadetBlue'))
renderer.GetActiveCamera().Azimuth(30)
renderer.GetActiveCamera().Elevation(30)
renderer.ResetCamera()
renderWindow.Render()
renderWindowInteractor.Start()
def MakeDodecahedron():
aDodecahedron = vtk.vtkPolyhedron()
for i in range(0, 20):
aDodecahedron.GetPointIds().InsertNextId(i)
aDodecahedron.GetPoints().InsertNextPoint(1.21412, 0, 1.58931)
aDodecahedron.GetPoints().InsertNextPoint(0.375185, 1.1547, 1.58931)
aDodecahedron.GetPoints().InsertNextPoint(-0.982247, 0.713644, 1.58931)
aDodecahedron.GetPoints().InsertNextPoint(-0.982247, -0.713644, 1.58931)
aDodecahedron.GetPoints().InsertNextPoint(0.375185, -1.1547, 1.58931)
aDodecahedron.GetPoints().InsertNextPoint(1.96449, 0, 0.375185)
aDodecahedron.GetPoints().InsertNextPoint(0.607062, 1.86835, 0.375185)
aDodecahedron.GetPoints().InsertNextPoint(-1.58931, 1.1547, 0.375185)
aDodecahedron.GetPoints().InsertNextPoint(-1.58931, -1.1547, 0.375185)
aDodecahedron.GetPoints().InsertNextPoint(0.607062, -1.86835, 0.375185)
aDodecahedron.GetPoints().InsertNextPoint(1.58931, 1.1547, -0.375185)
aDodecahedron.GetPoints().InsertNextPoint(-0.607062, 1.86835, -0.375185)
aDodecahedron.GetPoints().InsertNextPoint(-1.96449, 0, -0.375185)
aDodecahedron.GetPoints().InsertNextPoint(-0.607062, -1.86835, -0.375185)
aDodecahedron.GetPoints().InsertNextPoint(1.58931, -1.1547, -0.375185)
aDodecahedron.GetPoints().InsertNextPoint(0.982247, 0.713644, -1.58931)
aDodecahedron.GetPoints().InsertNextPoint(-0.375185, 1.1547, -1.58931)
aDodecahedron.GetPoints().InsertNextPoint(-1.21412, 0, -1.58931)
aDodecahedron.GetPoints().InsertNextPoint(-0.375185, -1.1547, -1.58931)
aDodecahedron.GetPoints().InsertNextPoint(0.982247, -0.713644, -1.58931)
faces = [12, # number of faces
5, 0, 1, 2, 3, 4, # number of ids on face, ids
5, 0, 5, 10, 6, 1,
5, 1, 6, 11, 7, 2,
5, 2, 7, 12, 8, 3,
5, 3, 8, 13, 9, 4,
5, 4, 9, 14, 5, 0,
5, 15, 10, 5, 14, 19,
5, 16, 11, 6, 10, 15,
5, 17, 12, 7, 11, 16,
5, 18, 13, 8, 12, 17,
5, 19, 14, 9, 13, 18,
5, 19, 18, 17, 16, 15]
aDodecahedron.SetFaces(faces)
aDodecahedron.Initialize()
return aDodecahedron
if __name__ == '__main__':
main()