Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

r""" 

Introduction 

 

Sage has a wide support for 3D graphics, from basic shapes to implicit and 

parametric plots. 

 

The following graphics functions are supported: 

 

 

- :func:`~plot3d` - plot a 3d function 

 

- :func:`~sage.plot.plot3d.parametric_plot3d.parametric_plot3d` - a parametric three-dimensional space curve or surface 

 

- :func:`~sage.plot.plot3d.revolution_plot3d.revolution_plot3d` - a plot of a revolved curve 

 

- :func:`~sage.plot.plot3d.plot_field3d.plot_vector_field3d` - a plot of a 3d vector field 

 

- :func:`~sage.plot.plot3d.implicit_plot3d.implicit_plot3d` - a plot of an isosurface of a function 

 

- :func:`~sage.plot.plot3d.list_plot3d.list_plot3d`- a 3-dimensional plot of a surface defined by a list of points in 3-dimensional space 

 

- :func:`~sage.plot.plot3d.list_plot3d.list_plot3d_matrix` - a 3-dimensional plot of a surface defined by a matrix defining points in 3-dimensional space 

 

- :func:`~sage.plot.plot3d.list_plot3d.list_plot3d_array_of_arrays`- A 3-dimensional plot of a surface defined by a list of lists defining points in 3-dimensional space 

 

- :func:`~sage.plot.plot3d.list_plot3d.list_plot3d_tuples` - a 3-dimensional plot of a surface defined by a list of points in 3-dimensional space 

 

The following classes for basic shapes are supported: 

 

 

- :class:`~sage.plot.plot3d.shapes.Box` - a box given its three magnitudes 

 

- :class:`~sage.plot.plot3d.shapes.Cone` - a cone, with base in the xy-plane pointing up the z-axis 

 

- :class:`~sage.plot.plot3d.shapes.Cylinder` - a cylinder, with base in the xy-plane pointing up the z-axis 

 

- :class:`~sage.plot.plot3d.shapes2.Line` - a 3d line joining a sequence of points 

 

- :class:`~sage.plot.plot3d.shapes.Sphere` - a sphere centered at the origin 

 

- :class:`~sage.plot.plot3d.shapes.Text` - a text label attached to a point in 3d space 

 

- :class:`~sage.plot.plot3d.shapes.Torus` - a 3d torus 

 

- :class:`~sage.plot.plot3d.shapes2.Point` - a position in 3d, represented by a sphere of fixed size 

 

 

The following plotting functions for basic shapes are supported 

 

 

- :func:`~sage.plot.plot3d.shapes.ColorCube` - a cube with given size and sides with given colors 

 

- :func:`~sage.plot.plot3d.shapes.LineSegment` - a line segment, which is drawn as a cylinder from start to end with given radius 

 

- :func:`~sage.plot.plot3d.shapes2.line3d` - a 3d line joining a sequence of points 

 

- :func:`~sage.plot.plot3d.shapes.arrow3d` - a 3d arrow 

 

- :func:`~sage.plot.plot3d.shapes2.point3d` - a point or list of points in 3d space 

 

- :func:`~sage.plot.plot3d.shapes2.bezier3d` - a 3d bezier path 

 

- :func:`~sage.plot.plot3d.shapes2.frame3d` - a frame in 3d 

 

- :func:`~sage.plot.plot3d.shapes2.frame_labels` - labels for a given frame in 3d 

 

- :func:`~sage.plot.plot3d.shapes2.polygon3d` - draw a polygon in 3d 

 

- :func:`~sage.plot.plot3d.shapes2.polygons3d` - draw the union of several polygons in 3d 

 

- :func:`~sage.plot.plot3d.shapes2.ruler` - draw a ruler in 3d, with major and minor ticks 

 

- :func:`~sage.plot.plot3d.shapes2.ruler_frame` - draw a frame made of 3d rulers, with major and minor ticks 

 

- :func:`~sage.plot.plot3d.shapes2.sphere` - plot of a sphere given center and radius 

 

- :func:`~sage.plot.plot3d.shapes2.text3d` - 3d text 

 

Sage also supports platonic solids with the following functions: 

 

 

- :func:`~sage.plot.plot3d.platonic.tetrahedron` 

 

- :func:`~sage.plot.plot3d.platonic.cube` 

 

- :func:`~sage.plot.plot3d.platonic.octahedron` 

 

- :func:`~sage.plot.plot3d.platonic.dodecahedron` 

 

- :func:`~sage.plot.plot3d.platonic.icosahedron` 

 

Different viewers are supported: jmol, a web-based interactive viewer 

using the Three.js JavaScript library and a raytraced representation. 

The viewer is invoked by adding the keyword argument 

``viewer='jmol'`` (respectively ``'tachyon'`` or ``'threejs'``) 

to the command ``show()`` on any three-dimensional graphic 

 

 

- :class:`~sage.plot.plot3d.tachyon.Tachyon` - create a scene the can be rendered using the Tachyon ray tracer 

 

- :class:`~sage.plot.plot3d.tachyon.Axis_aligned_box` - box with axis-aligned edges with the given min and max coordinates 

 

- :class:`~sage.plot.plot3d.tachyon.Cylinder` - an infinite cylinder 

 

- :class:`~sage.plot.plot3d.tachyon.FCylinder` - a finite cylinder 

 

- :class:`~sage.plot.plot3d.tachyon.FractalLandscape`- axis-aligned fractal landscape 

 

- :class:`~sage.plot.plot3d.tachyon.Light` - represents lighting objects 

 

- :class:`~sage.plot.plot3d.tachyon.ParametricPlot` - parametric plot routines 

 

- :class:`~sage.plot.plot3d.tachyon.Plane` - an infinite plane 

 

- :class:`~sage.plot.plot3d.tachyon.Ring` - an annulus of zero thickness 

 

- :class:`~sage.plot.plot3d.tachyon.Sphere`- a sphere 

 

- :class:`~sage.plot.plot3d.tachyon.TachyonSmoothTriangle` - a triangle along with a normal vector, which is used for smoothing 

 

- :class:`~sage.plot.plot3d.tachyon.TachyonTriangle` - basic triangle class 

 

- :class:`~sage.plot.plot3d.tachyon.TachyonTriangleFactory` - class to produce triangles of various rendering types 

 

- :class:`~sage.plot.plot3d.tachyon.Texfunc` - creates a texture function 

 

- :class:`~sage.plot.plot3d.tachyon.Texture` - stores texture information 

 

- :func:`~sage.plot.plot3d.tachyon.tostr` - converts vector information to a space-separated string 

 

"""