3 # This program plots several 2D and 3D polyhedra on the same figure,
4 # illustrating some of the possible plot options.
6 import matplotlib
.pyplot
as plt
8 from matplotlib
import pylab
9 from mpl_toolkits
.mplot3d
import Axes3D
14 x
, y
, z
= symbols('x y z')
16 diam
= Ge(y
, x
- 1) & Le(y
, x
+ 1) & Ge(y
, -x
- 1) & Le(y
, -x
+ 1)
18 cham
= Le(0, x
, 3) & Le(0, y
, 3) & Le(0, z
, 3) & \
19 Le(z
- 2, x
, z
+ 2) & Le(1 - z
, x
, 5 - z
) & \
20 Le(z
- 2, y
, z
+ 2) & Le(1 - z
, y
, 5 - z
) & \
21 Le(y
- 2, x
, y
+ 2) & Le(1 - y
, x
, 5 - y
)
24 Le(x
+ y
+ z
, 7) & Ge(-2, -x
- y
- z
) & \
25 Le(-1, x
+ y
- z
, 4) & Le(-1, x
- y
+ z
, 4) & Le(-1, -x
+ y
+ z
, 4)
27 cubo
= Le(0, x
, 5) & Le(0, y
, 5) & Le(0, z
, 5) & \
28 Le(x
-4, y
, x
+ 4) & Le(-x
+ 1, y
, -x
+ 9) & \
29 Le(y
-4, z
, y
+ 4) & Le(-y
+ 1, z
, -y
+ 9) & \
30 Le(z
-4, x
, z
+ 4) & Le(-z
+ 1, x
, -z
+ 9) & \
31 Le(3, x
+ y
+ z
, 12) & Le(-2, x
- y
+ z
, 7) & \
32 Le(-2, -x
+ y
+ z
, 7) & Le(-2, x
+ y
- z
, 7)
35 if __name__
== '__main__':
37 fig
= plt
.figure(facecolor
='white')
39 diam_plot
= fig
.add_subplot(2, 2, 1, aspect
='equal')
40 diam_plot
.set_title('Diamond')
41 diam
.plot(diam_plot
, fill
=True, edgecolor
='red', facecolor
='yellow')
43 cham_plot
= fig
.add_subplot(2, 2, 2, projection
='3d', aspect
='equal')
44 cham_plot
.set_title('Chamfered cube')
45 cham
.plot(cham_plot
, facecolors
=(1, 0, 0, 0.75))
47 rhom_plot
= fig
.add_subplot(2, 2, 3, projection
='3d', aspect
='equal')
48 rhom_plot
.set_title('Rhombicuboctahedron')
49 rhom
.plot(rhom_plot
, facecolors
=(0, 1, 0, 0.75))
51 cubo_plot
= fig
.add_subplot(2, 2, 4, projection
='3d', aspect
='equal')
52 cubo_plot
.set_title('Truncated cuboctahedron')
53 cubo
.plot(cubo_plot
, facecolors
=(0, 0, 1, 0.75))