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
10 from linpy
import Ge
, Le
, symbols
13 x
, y
, z
= symbols('x y z')
15 diam
= Ge(y
, x
- 1) & Le(y
, x
+ 1) & Ge(y
, -x
- 1) & Le(y
, -x
+ 1)
18 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))
28 Le(0, x
, 5) & Le(0, y
, 5) & Le(0, z
, 5) &
29 Le(x
- 4, y
, x
+ 4) & Le(-x
+ 1, y
, -x
+ 9) &
30 Le(y
- 4, z
, y
+ 4) & Le(-y
+ 1, z
, -y
+ 9) &
31 Le(z
- 4, x
, z
+ 4) & Le(-z
+ 1, x
, -z
+ 9) &
32 Le(3, x
+ y
+ z
, 12) & Le(-2, x
- y
+ z
, 7) &
33 Le(-2, -x
+ y
+ z
, 7) & Le(-2, x
+ y
- z
, 7))
36 if __name__
== '__main__':
38 fig
= plt
.figure(facecolor
='white')
40 diam_plot
= fig
.add_subplot(2, 2, 1, aspect
='equal')
41 diam_plot
.set_title('Diamond')
42 diam
.plot(diam_plot
, fill
=True, edgecolor
='red', facecolor
='yellow')
44 cham_plot
= fig
.add_subplot(2, 2, 2, projection
='3d', aspect
='equal')
45 cham_plot
.set_title('Chamfered cube')
46 cham
.plot(cham_plot
, facecolors
=(1, 0, 0, 0.75))
48 rhom_plot
= fig
.add_subplot(2, 2, 3, projection
='3d', aspect
='equal')
49 rhom_plot
.set_title('Rhombicuboctahedron')
50 rhom
.plot(rhom_plot
, facecolors
=(0, 1, 0, 0.75))
52 cubo_plot
= fig
.add_subplot(2, 2, 4, projection
='3d', aspect
='equal')
53 cubo_plot
.set_title('Truncated cuboctahedron')
54 cubo
.plot(cubo_plot
, facecolors
=(0, 0, 1, 0.75))