 
 
 
 
 
 
Re: Version 6 code for Manger Sponge????
- To: mathgroup at smc.vnet.net
- Subject: [mg78577] Re: Version 6 code for Manger Sponge????
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 4 Jul 2007 05:45:11 -0400 (EDT)
- Organization: Uni Leipzig
- References: <f6d79t$r6c$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi,
splitCuboid[Cuboid[p1_, p2_]] :=
  Module[{dx, dy, dz},
   {dx, dy, dz} = (p2 - p1)/3;
   {Cuboid[p1 + {0, 0, 0}, p1 + {dx, dy, dz}],
    Cuboid[p1 + {0, 0, dz}, p1 + {dx, dy, 2 dz}],
    Cuboid[p1 + {0, 0, 2 dz}, p1 + {dx, dy, 3 dz}],
    Cuboid[p1 + {0, dy, 0}, p1 + {dx, 2 dy, dz}],
    Cuboid[p1 + {0, dy, 2 dz}, p1 + {dx, 2 dy, 3 dz}],
    Cuboid[p1 + {0, 2 dy, 0}, p1 + {dx, 3 dy, dz}],
    Cuboid[p1 + {0, 2 dy, dz}, p1 + {dx, 3 dy, 2 dz}],
    Cuboid[p1 + {0, 2 dy, 2 dz}, p1 + {dx, 3 dy, 3 dz}],
    Cuboid[p1 + {dx, 0, 0}, p1 + {2 dx, dy, dz}],
    Cuboid[p1 + {dx, 0, 2 dz}, p1 + {2 dx, dy, 3 dz}],
    Cuboid[p1 + {dx, 2 dy, 0}, p1 + {2 dx, 3 dy, dz}],
    Cuboid[p1 + {dx, 2 dy, 2 dz}, p1 + {2 dx, 3 dy, 3 dz}],
    Cuboid[p1 + {2 dx, 0, 0}, p1 + {3 dx, dy, dz}],
    Cuboid[p1 + {2 dx, 0, dz}, p1 + {3 dx, dy, 2 dz}],
    Cuboid[p1 + {2 dx, 0, 2 dz}, p1 + {3 dx, dy, 3 dz}],
    Cuboid[p1 + {2 dx, dy, 0}, p1 + {3 dx, 2 dy, dz}],
    Cuboid[p1 + {2 dx, dy, 2 dz}, p1 + {3 dx, 2 dy, 3 dz}],
    Cuboid[p1 + {2 dx, 2 dy, 0}, p1 + {3 dx, 3 dy, dz}],
    Cuboid[p1 + {2 dx, 2 dy, dz}, p1 + {3 dx, 3 dy, 2 dz}],
    Cuboid[p1 + {2 dx, 2 dy, 2 dz}, p1 + {3 dx, 3 dy, 3 dz}]}
   ]
MengerSponge[0] = Cuboid[{0, 0, 0}, {1, 1, 1}]
MengerSponge[n_Integer] :=
  Module[{prev},
   prev = MengerSponge[n - 1];
   prev /. c_Cuboid :> splitCuboid[c]
   ]
and
MengerSponge[2] // Graphics3D
will show you the second iteration.
Regards
   Jens
Zeno wrote:
> Is there a notebook or code that works in Version 6 that makes a menger
> Sponge to given iterations??
> 
> Notebooks that work in Veriosn 5 do not work in Verison 6.
> 

