index 9ec958f..dcba976 100755 (executable)
@@ -1,5 +1,18 @@
#!/usr/bin/env python3

#!/usr/bin/env python3

+# Plot a Menger sponge.
+#
+# The construction of a Menger sponge can be described as follows:
+#
+# 1. Begin with a cube.
+# 2. Divide every face of the cube into 9 squares, like a Rubik's Cube. This
+#    will sub-divide the cube into 27 smaller cubes.
+# 3. Remove the smaller cube in the middle of each face, and remove the smaller
+#    cube in the very center of the larger cube, leaving 20 smaller cubes. This
+#    is a level-1 Menger sponge (resembling a Void Cube).
+# 4. Repeat steps 2 and 3 for each of the remaining smaller cubes, and continue
+#    to iterate.
+
import argparse

import matplotlib.pyplot as plt
import argparse

import matplotlib.pyplot as plt
@@ -9,7 +22,8 @@ from math import ceil
from matplotlib import pylab
from mpl_toolkits.mplot3d import Axes3D

from matplotlib import pylab
from mpl_toolkits.mplot3d import Axes3D

-from pypol import *
+from linpy import *
+

x, y, z = symbols('x y z')

x, y, z = symbols('x y z')

@@ -56,8 +70,8 @@ def menger(domain, count=1, cut=False):
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Compute a Menger sponge.')
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Compute a Menger sponge.')
-    parser.add_argument('-n', '--iterations', type=int, default=1,
-        help='number of iterations (default: 1)')
+    parser.add_argument('-n', '--iterations', type=int, default=2,
+        help='number of iterations (default: 2)')
parser.add_argument('-c', '--cut', action='store_true', default=False,
help='cut the sponge')
args = parser.parse_args()
parser.add_argument('-c', '--cut', action='store_true', default=False,
help='cut the sponge')
args = parser.parse_args()