A circular dome, produced by revolving a cosine curve, is divided into congruent segments. Each segment can be rotated around a vertical axis to open the dome.
In[]:=
Manipulate[​​α=Pi/n/2;​​r1=Rotate[RevolutionPlot3D[{x,-shift,heightCos[x]},{x,0,Pi/2+ext},{v,0,Pi/n},MeshNone,BoundaryStyleBlack][[1]],rot,{0,0,1},{Pi/2Cos[α],Pi/2Sin[α],0}];​​beam={RGBColor[1,0.4,0.5],Cuboid[{1.57Cos[Pi/n/2],-1.57Sin[Pi/n/2],-1},{1.7Cos[Pi/n/2],1.57Sin[Pi/n/2],-0.8}]};​​fulc={Specularity[0.7],RGBColor[0.2,0.2,0.4],Cylinder[{{Pi/2Cos[α],Pi/2Sin[α],-1},{Pi/2Cos[α],Pi/2Sin[α],0.16}},0.12]};​​​​r2={Table[Rotate[{beam,fulc,{RGBColor[0.8,1,0.2],r1}},i2Pi/n,{0,0,1}],{i,n}]};​​r3=Table[Rotate[{beam,fulc,r1},i2Pi/n+Pi/n,{0,0,1}],{i,n}];​​base=Polygon[{Table[{2Sin[iPi/n],2Cos[iPi/n],-1},{i,2n}]}];​​​​Graphics3D[{base,r2,r3},ViewAngle0.06,PlotRange{{-2.4,2.4},{-2.4,2.4},{-1,1}},SphericalRegionTrue,BoxedFalse,ViewPoint{5,-10,12},ImageSize380],​​{{rot,0,"rotate to open"},Pi/2,0},​​{{n,3,"pairs of segments"},2,5,1,RadioButton},​​{{ext,0.2,"extend roof"},0,0.4},​​{{height,0.7,"height"},0.2,1},​​{{shift,0.2,"shift"},0,0.3},TrackedSymbolsManipulate,SaveDefinitions->True]
Out[]=
​
rotate to open
pairs of segments
2
3
4
5
extend roof
height
shift