ParametricObjects
VTKExamples/Python/GeometricObjects/ParametricObjects
Description¶
See Parametric Equations for Surfaces by Andrew Maclean for an excellent description of these beautiful parametric surfaces.
You can edit the following code by selecting any one of the functions and the corresponding object will be displayed.
Code¶
ParametricObjects.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import vtk def main(): colors = vtk.vtkNamedColors() colors.SetColor("BkgColor", [26, 51, 102, 255]) # Uncomment one of the following. # parametricObject = vtk.vtkParametricBoy() # parametricObject = vtk.vtkParametricConicSpiral() # parametricObject = vtk.vtkParametricCrossCap() # parametricObject = vtk.vtkParametricDini() # parametricObject = vtk.vtkParametricEllipsoid() # parametricObject = vtk.vtkParametricEnneper() parametricObject = vtk.vtkParametricFigure8Klein() # parametricObject = vtk.vtkParametricKlein() # parametricObject = vtk.vtkParametricMobius() # parametricObject = vtk.vtkParametricRandomHills() # parametricObject = vtk.vtkParametricRoman() # parametricObject = vtk.vtkParametricSpline() # parametricObject = vtk.vtkParametricSuperEllipsoid() # parametricObject = vtk.vtkParametricSuperToroid() # parametricObject = vtk.vtkParametricTorus() parametricFunctionSource = vtk.vtkParametricFunctionSource() parametricFunctionSource.SetParametricFunction(parametricObject) parametricFunctionSource.Update() # Visualize backProperty = vtk.vtkProperty() backProperty.SetColor(colors.GetColor3d("Tomato")) mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(parametricFunctionSource.GetOutputPort()) # Create an actor for the contours actor = vtk.vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d("Banana")) actor.GetProperty().SetSpecular(.5) actor.GetProperty().SetSpecularPower(20) actor.SetBackfaceProperty(backProperty) renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() renderWindow.SetWindowName("Parametric Objects") renderWindow.AddRenderer(renderer) interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) renderer.AddActor(actor) renderer.SetBackground(colors.GetColor3d("BkgColor")) renderWindow.Render() interactor.Start() if __name__ == '__main__': main()