Zonohedron

Author

Eric W. Weisstein
December 9, 2003

This notebook downloaded from http://mathworld.wolfram.com/notebooks/Polyhedra/Zonohedron.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/Zonohedron.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Additional Authors

Text as noted by David Eppstein

Initialization

Table

Archimedeans

Timing[archimedeans=N[Graphics3D[#,Boxed->False]&/@{Polyhedron[#],Zonohedron[NonparallelVectors[PolyhedronVertices[#]]]}&/@Archimedeans];]

Show[GraphicsArray[Flatten/@Transpose[Partition[archimedeans,7,7,{1,1},{{}}]]],GraphicsSpacing->{-.2,0},ImageSize->450]

Platonics

Timing[platonics=N[Graphics3D[#,Boxed->False]&/@{Polyhedron[#],Zonohedron[NonparallelVectors[PolyhedronVertices[#]//N]]}&/@Platonics];]

Show[GraphicsArray[Flatten/@Transpose[Partition[platonics,3,3,{1,1},{{}}]]],GraphicsSpacing->{.1,0}]

Cube Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[Cube]]]],Boxed->False]

Cube Zonification

Truncated Small Rhombicuboctahedron

This is the Minkowski sum of a cube, a truncated octahedron, and a rhombic dodecahedron.  It has as its generators the 13 axes of symmetry of a cube. Some of the octagonal faces are non-regular. (Eppstein)

Show[Graphics3D[Zonohedron[{{1,1,0},{1,-1,0},{1,0,1},{1,0,-1},{0,1,1},{0,1,-1},{Sqrt[2/3],Sqrt[2/3],Sqrt[2/3]},{Sqrt[2/3],Sqrt[2/3],-Sqrt[2/3]},{Sqrt[2/3],-Sqrt[2/3],Sqrt[2/3]},{Sqrt[2/3],-Sqrt[2/3],-Sqrt[2/3]},{Sqrt[2],0,0},{0,Sqrt[2],0},{0,0,Sqrt[2]}}]],Boxed->False]

c2=Select[KSubsets[Midpoint/@Map[PolyhedronVertices[Cube][[#]]&,PolyhedronEdges[Cube],{2}],2],Abs[Norm[Subtract@@#]-Sqrt[2]]<10^-10&]

c3=Diameters[Cube]

c4=Select[KSubsets[Centroid/@Map[PolyhedronVertices[Cube][[#]]&,PolyhedronFaces[Cube],{2}],2],Abs[Norm[Subtract@@#]-1]<10^-10&]

Length/@{c2,c3,c4}

Length[Join[c2,c3,c4]]

v=Subtract@@@Join[c2,c3,c4]

Show[Graphics3D[Zonohedron[v]],Boxed->False]

Cuboctahedron Zonofication

Show[Graphics3D[Zonohedron[PolyhedronVertices[Cuboctahedron]]],Boxed->False]//Timing

Dodecahedron Zonofication

Show[Graphics3D[Zonohedron[Subtract@@@Diameters[Dodecahedron]]],Boxed->False]

Great Rhombicosidodecahedron Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[GreatRhombicosidodecahedron]]]],Boxed->False]//Timing

Great Rhombicuboctahedron Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[GreatRhombicuboctahedron]]]],Boxed->False]//Timing

Icosahedron Zonofication

Show[Graphics3D[Zonohedron[Subtract@@@Diameters[Icosahedron]]],Boxed->False]

Icosahedron Zonofication

Vertices+Edge Midpoints

<<Utilities`Simplify`

Off[N::"meprec"]

e=KSubsets[PolyhedronVertices[Icosahedron],2];
norm=Norm/@e;
diags1=Select[e,Abs[Norm[#]-Max[norm]]<10^-10&];

e=KSubsets[Map[ToExact,Midpoint/@(PolyhedronEdges[Icosahedron]/.Thread[Range[12]->PolyhedronVertices[Icosahedron]]),{2}],2];
norm=Norm/@e;
diags2=Select[e,Abs[Norm[#]-Max[norm]]<10^-10&];

Length/@{diags1,diags2}

v=Map[ToExact,Unit/@(Subtract@@@Join[diags1,diags2]),{2}];

Show[Graphics3D[Zonohedron[v]],Boxed->False]

Icosahedron Zonofication

Vertices+Edge Midpoints+Face Centers: 31 axes of symmetry of the icosahedron

<<Utilities`Simplify`

Off[N::"meprec"]

e=KSubsets[PolyhedronVertices[Icosahedron],2];
norm=Norm/@e;
diags1=Select[e,Abs[Norm[#]-Max[norm]]<10^-10&];

e=KSubsets[Map[ToExact,Midpoint/@(PolyhedronEdges[Icosahedron]/.Thread[Range[12]->PolyhedronVertices[Icosahedron]]),{2}],2];
norm=Norm/@e;
diags2=Select[e,Abs[Norm[#]-Max[norm]]<10^-10&];

e=KSubsets[Map[ToExact,Centroid/@Flatten[Polyhedron[Icosahedron]],{2}],2];
norm=Norm/@e;
diags3=Select[e,Abs[Norm[#]-Max[norm]]<10^-10&];

Length/@{diags1,diags2,diags3}

v=Map[ToExact,Unit/@(Subtract@@@Join[diags1,diags2,diags3]),{2}];//Timing

Show[Graphics3D[Zonohedron[v]],Boxed->False]

Icosidodecahedron Zonofication

Show[Graphics3D[Zonohedron[Subtract@@@Diameters[Icosidodecahedron]]],Boxed->False]

Octahedron Zonofication

Show[Graphics3D[Zonohedron[Subtract@@@Diameters[Octahedron]]],Boxed->False]

Rhombic Triacontahedron Zonofication

Show[Graphics3D[zono=Zonohedron[v=NonparallelVectors[PolyhedronVertices[RhombicTriacontahedron]]]],Boxed->False,ImageSize->200]//Timing

Length[v]

Sort[Union[PolyhedronEdgeLengths[zono]//FullSimplify],Less]

Rhombic Enneacontahedron Zonofication

Diameters[Dodecahedron]//Length

Show[Graphics3D[poly=Zonohedron[v=NonparallelVectors[PolyhedronVertices[Dodecahedron]]]],Boxed->False]//Timing

Length[v]

PolyhedronFaces[poly]//Length

Union[FullSimplify[PolyhedronEdgeLengths[poly]]]

<<Utilities`Simplify`

Length[v=Union[Map[FullSimplify,PolyhedronVertices[poly],{2}]]]//Timing

Length[v2=NonparallelVectors[v]]//Timing

Show[Graphics3D[Zonohedron[N[v2,30]]],Boxed->False]

Towle's version

Show[Zonohedron[Zonohedron[N[Vertices[Dodecahedron]]]](*N not required in v.2.2 or v.3*)]

Small Rhombicosidodecahedron Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[SmallRhombicosidodecahedron]]]],Boxed->False]//Timing

Small Rhombicuboctahedron Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[SmallRhombicuboctahedron]]]],Boxed->False]//Timing

Snub Cube Zonofication

Show[Graphics3D[Zonohedron[PolyhedronVertices[SnubCube]]],Boxed->False]

Snub Dodecahedron Zonofication

Show[Graphics3D[Zonohedron[PolyhedronVertices[SnubDodecahedron]]],Boxed->False]//Timing

Tetrahedron Zonofication

Show[Graphics3D[Zonohedron[PolyhedronVertices[Tetrahedron]]],Boxed->False]

Tetrahedron Zonofication

Truncated Rhombic Dodecahedron

This has as its generators the seven axes of symmetry of a tetrahedron. Since its generators are the union of those for the cube and the rhombic dodecahedron, it is the Minkowski sum of those two shapes.  The hexagons can not be regular, although they do have all sides the same length, since three regular hexagons would meet in a flat solid angle instead of the corners here.  Although this shape does not fill space on its own, it can be combined with cubes in a regular space-filling pattern. (Eppstein).

Show[Graphics3D[Zonohedron[{{1,1,1},{1,1,-1},{1,-1,1},{1,-1,-1},{Sqrt[3],0,0},{0,Sqrt[3],0},{0,0,Sqrt[3]}}]],Boxed->False]

v={{-(1/(2 (Sqrt[3]))),-(1/2),(1/(Sqrt[6]))},{-(1/(2 (Sqrt[3]))),(1/2),(1/(Sqrt[6]))},{(1/(Sqrt[3])),0,(1/(Sqrt[6]))},{0,0,(Sqrt[(2/3)])},{-(2/(3 (Sqrt[3]))),-(2/3),-((Sqrt[(2/3)])/3)},{-(2/(3 (Sqrt[3]))),(2/3),-((Sqrt[(2/3)])/3)},{(4/(3 (Sqrt[3]))),0,-((Sqrt[(2/3)])/3)}};

Show[Graphics3D[Zonohedron[v]],Boxed->False]

Truncated Cube Zonofication

Show[Graphics3D[Zonohedron[Subtract@@@Diameters[TruncatedCube]]],Boxed->False]//Timing

Truncated Dodecahedron Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[TruncatedDodecahedron]]]],Boxed->False]//Timing

Truncated Icosahedron Zonofication

Show[Graphics3D[Zonohedron[NonparallelVectors[PolyhedronVertices[TruncatedIcosahedron]]]],Boxed->False]//Timing

Truncated Octahedron Zonofication

Show[Graphics3D[Zonohedron[PolyhedronVertices[TruncatedOctahedron]]],Boxed->False]//Timing

Truncated Tetrahedron Zonofication

Show[Graphics3D[Zonohedron[PolyhedronVertices[TruncatedTetrahedron]]],Boxed->False]//Timing