Bulb dome made of polar zonohedron
Bulb dome made of polar zonohedron
Sándor Kabai
Polar zonohedron is cut below the vertical axis of symmetry in order to depict a possible geometry of a building dome.
Polar zonohedron is cut below the vertical axis of symmetry in order to depict a possible geometry of a building dome.
In[]:=
(*Varyfrequency"n"here*)n=20;(*Varyslenderness"slen"here*)slen=1;hh=slenSin[Pi/n];sptop=Sphere[{0,0,nhh/2},0.1];pol=Table[{2Sin[i2Pi/n+Pi/n],2Cos[i2Pi/n+Pi/n],0},{i,n}];deck=Polygon[{pol}];Do[zon[i,j]={2Sin[πj/n]Cos[πi/n],2Sin[πj/n]Sin[πi/n],hh(n/2-j)},{i,0,3n},{j,0,n}];pz=Table[Polygon[{zon[i+j+1,j],zon[i+j+2,j+1],zon[i+j+1,j+2],zon[i+j,j+1]}],{i,0,2n,2},{j,0,n-2}];Graphics3D[{pz},BoxedFalse,SphericalRegionTrue,ViewPoint{10,10,4}]
Out[]=
In[]:=
(*Varyperforate"p1"here*)p1=0.3;pzperf=Normal[pz]/.p:Polygon[__](p/.pts:{{_?NumericQ,_,_},__}Module[{cent,innervtx},cent=Mean[pts];innervtx={1-p1,p1}.{#,cent}&/@pts;Join[pts,pts[[{1}]],innervtx,innervtx[[{1}]]]])//#&;Graphics3D[{Green,pzperf,Red,deck},BoxedFalse,SphericalRegionTrue,ViewPoint{10,10,4}]
Out[]=
In[]:=
column=Cylinder[{{0,0,0.01},{0,0,-2}},1];Graphics3D[{sptop,Green,pzperf,Red,deck,Yellow,column},BoxedFalse,SphericalRegionTrue,ViewPoint{10,10,4}]
Out[]=
In[]:=
(*Varytruncate"tr"here*)Needs["PolyhedronOperations`"];tr=0.2;pztrunc=Truncate[Scale[pz,0.999],tr];Graphics3D[{sptop,Green,pztrunc,Red,deck,Yellow,column},BoxedFalse,SphericalRegionTrue,ViewPoint{10,10,-4}]
Out[]=
In[]:=
Graphics3D[{Scale[pzperf,1.001],sptop,Red,pz,Yellow,column},BoxedFalse,SphericalRegionTrue,ViewPoint{10,10,-4}]
Out[]=