Building small stellated dodecahedron
Sándor Kabai
Pentagonal blocks of gradually decreasing size are stacked on the faces of a dodecahedron to build a small stellated dodecahedron.
Pentagonal blocks of gradually decreasing size are stacked on the faces of a dodecahedron to build a small stellated dodecahedron.
In[]:=
Manipulate[Module[{alf,bet,bet1,m,x,y,p,n,frame,f1,f2,v1,v2,od,p1,p1up,ssdn,tip5,tip6},alf=ArcTan[1.618];bet=ArcTan[0.618];bet1=ArcTan[0.618^2];m=2.618Sin[alf];x=0.5/Sin[2Pi/10];y=0.2Tan[alf];p=0.5/Tan[2Pi/10];n=5;frame=Table[{xSin[i2Pi/n],xCos[i2Pi/n],0.1},{i,n+1}];f1=Polygon[frame];f2=Translate[f1,{0,0,-0.2}];v1=Table[{xSin[i2Pi/n],xCos[i2Pi/n],0.1},{i,2}];v2=Table[{xSin[-i2Pi/n+6Pi/n],xCos[-i2Pi/n+6Pi/n],-0.1},{i,2}];od=Table[Rotate[Polygon[Join[v2,v1]],i2Pi/n,{0,0,1}],{i,n}];p1=Table[Translate[Scale[{od,f1,f2},0.87^i{1,1,1},{0,0,0}],{Sum[0.87^n/4.35,{n,1,i}]{0,0,1}}],{i,fr}];p1up=Rotate[Translate[{p1},{0,0,m/2-0.1}],Pi/2,{0,0,1}];ssdn=Rotate[Scale[ssd,4.25],Pi,{0,0,1}];tip5=Table[Rotate[Rotate[Rotate[p1up,Pi,{0,0,1}],2bet,{0,1,0}],i2Pi/5,{0,0,1}],{i,5}];tip6=Rotate[{p1up,tip5},Pi,{0,1,0}];Graphics3D[{If[sssd,ssdn,{}],RGBColor[0,1,1],p1up,Red,dod,Yellow,tip5,tip6},BoxedFalse,SphericalRegionTrue,ImageSize450,ViewAngle0.27,PlotRange2.7]],Row[{Control@{{fr,3,"number of layers"},0,18,1,Appearance"Labeled"},Spacer[10],Control@{{sssd,False,"small stellated dodecahedron skeleton"},{False,True}}}],TrackedSymbols{fr,sssd},Initialization(ssd=Graphics3D[Normal[GraphicsComplex[PolyhedronData["SmallStellatedDodecahedron","VertexCoordinates"],Polygon[PolyhedronData["SmallStellatedDodecahedron","FaceIndices"]]]]/.p:Polygon[__](p/.pts:{{_?NumericQ,_,_},__}Module[{cent,innervtx},cent=Mean[pts];innervtx={1-0.1,0.1}.{#,cent}&/@pts;Join[pts,pts[[{1}]],innervtx,innervtx[[{1}]]]])][[1]];dod=GraphicsComplex[PolyhedronData["Dodecahedron","VertexCoordinates"],Polygon[PolyhedronData["Dodecahedron","FaceIndices"]]];)]
Out[]=

