30 rhombic dodecahedra (RD) around 12 polar zonohedra (PZ)​
​By Sándor Kabai
12 poplar zonohedra (PZ) are built around a dodecahedron (dod). Two kinds of rhombuses form the PZ. The diagonal ratio of one rhombus is golden ratio squared and that of the other rhombus is square root two. The latter rhombuses are in contact with the faces of 30 RD arranged around 12 PZ. The RDs are connected to one another with edges. The centres of RDs coincide with the vertices of an icosidodecahedron (ID). The cubes inside the RD are connected with edges to the PZ and with vertices to one another .
​
In[]:=
fi=GoldenRatio;​​alf=ArcTan[fi];​​bet=ArcTan[1/fi];​​bet1=ArcTan[1/fi^2];​​h=2*fi*Sin[alf];​​b=2*fi*Cos[alf];​​d=b/Cos[Pi/5];​​f=1/Tan[Pi/5];​​gam=ArcTan[Sqrt[2]];​​gr=N[2gamSqrt[3]];​​e=Sqrt[3];α1=ArcTan1
2
;y1=
2
;w=1/Tan[Pi/3];γ=ArcSin[w/y1];​​z=3wCos[γ];δ=ArcCos[z/e];s=Sqrt[e^2-z^2];​​vO={0,0,0};vP={d/2,0,h/2};vQ={f,1,h};​​vR={f,-1,h};vS={2*f-d/2,0,3*(h/2)};​​vT={(d/2)*Sin[Pi/10],(d/2)*Cos[Pi/10],h/2};​​pol1=Polygon[{vO,vP,vQ,vT}];pol2=Polygon[{vP,vQ,vS,vR}];​​pz1=Translate[Table[Rotate[{pol1,pol2},i*2*(Pi/5),{0,0,1}],{i,5}],{0,0,0}];pz2=Rotate[{pz1},Pi,{0,1,0},{0,0,5*(h/4)}];​​pz5={Table[Rotate[Rotate[Rotate[{pz1,pz2},Pi,{0,0,1}],-2*bet,{0,1,0}],i*2*(Pi/5),{0,0,1}],{i,5}]};​​pz6=Rotate[{pz1,pz2,pz5},Pi,{0,1,0}];​​pz={pz1,pz2};​​(*5rhombicdodecahedra*)​​k=1/Tan[Pi/5];j=ArcCos[k/y1];​​rd=PolyhedronData["RhombicDodecahedron","Faces"];​​rdn=TranslateRotateRotateScale[rd,
3
],Pi4,{0,0,1},Pi4,{1,0,0},{0,y1+s,z+y1};​​rd5=Table[Rotate[Rotate[{rdn},-j+Pi,{1,0,0}],i2Pi/5,{0,0,1}],{i,5}];​​rd5up=Rotate[Translate[{rd5},{0,0,5*(h/2)}],-Pi/2,{0,0,1}];​​rd5up5={RGBColor[0,1,1],Table[Rotate[Rotate[Rotate[rd5up,Pi,{0,0,1}],-2bet,{0,1,0}],i2Pi/5,{0,0,1}],{i,5}]};​​dod=Scale[Rotate[GraphicsComplex[PolyhedronData["Dodecahedron","VertexCoordinates"],Polygon[PolyhedronData["Dodecahedron","FaceIndices"]]],Pi/5,{0,0,1}],(2/fi)*{1,1,1},{0,0,0}];
In[]:=
id=PolyhedronData["Icosidodecahedron","Faces"];​​idn=Scale[id,2];​​id21=PolyhedronData["Icosidodecahedron","Edges"];​​idv=PolyhedronData["Icosidodecahedron","VertexCoordinates"];​​idfr={Map[Cylinder[idv[[#]],0.035]&,id21]};​​gr=N[2gamSqrt[3]];​​idfr3=Scale[idfr,gr];​​Graphics3D[{dod,Yellow,pz},BoxedFalse,SphericalRegionTrue]
Out[]=
In[]:=
Graphics3D[{{Yellow,pz,pz5,pz6},idfr3},BoxedFalse,SphericalRegionTrue]
Out[]=
In[]:=
Graphics3D[{{Yellow,pz,pz5,pz6},{RGBColor[0,1,1],rd5up},idfr3},BoxedFalse,SphericalRegionTrue]
Out[]=
In[]:=
Manipulate​​gr=N[2gamSqrt[3]];​​rd=PolyhedronData["RhombicDodecahedron","Faces"];​​rdn=TranslateRotateRotateScale[rd,
3
],Pi4,{0,0,1},Pi4,{1,0,0},{0,y1+s,z+y1};​​ss=Scale[rdn,size];​​rd5=Table[Rotate[Rotate[{ss},-j+Pi,{1,0,0}],i2Pi/5,{0,0,1}],{i,5}];​​rd5up=Rotate[Translate[{rd5},{0,0,5*(h/2)}],-Pi/2,{0,0,1}];​​rd5up5={RGBColor[0,1,0.4],Table[Rotate[Rotate[Rotate[rd5up,Pi,{0,0,1}],-2bet,{0,1,0}],i2Pi/5,{0,0,1}],{i,5}]};​​idfr3=Scale[idfr,gr];​​Graphics3D[{pz,pz5,idfr3,rd5up5},BoxedFalse,SphericalRegionTrue,ImageSize300,ViewPoint{0,0,100},ViewAngle0.01],​​{{size,0.2,"size"},0.1,1},​​TrackedSymbolssize,SaveDefinitions->True​​
Out[]=
​
size
In[]:=
Manipulate​​inc=N[2Cos[gam]];​​gr=N[2gamSqrt[3]];​​cub=PolyhedronData["Cube","Faces"];​​cubn=Rotate[Scale[cub,inc],Pi/4,{0,0,1}];​​cubbase=TranslateRotateRotateScale[cubn,
3
],Pi4,{0,0,1},Pi4,{1,0,0},{0,y1+s,z+y1};​​ss=Scale[cubbase,size];​​cub5=Table[Rotate[Rotate[{ss},-j+Pi,{1,0,0}],i2Pi/5,{0,0,1}],{i,5}];​​cub5up=Rotate[Translate[{cub5},{0,0,5*(h/2)}],-Pi/2,{0,0,1}];​​cub5up5={RGBColor[0,1,1],Table[Rotate[Rotate[Rotate[cub5up,Pi,{0,0,1}],-2bet,{0,1,0}],i2Pi/5,{0,0,1}],{i,5}]};​​idfr3=Scale[idfr,gr];​​Graphics3D[{pz,{Yellow,pz5},Red,idfr3,cub5up5},BoxedFalse,SphericalRegionTrue,ImageSize300,ViewPoint{0,0,100},ViewAngle0.01],​​{{size,0.2,"size"},0.1,1},​​TrackedSymbolssize,SaveDefinitions->True​​