Converting polyhedra to sphere
Converting polyhedra to sphere
A couple of examples are shown about how to manipulate vertices of of polyhedra to obtain a segmented sphere.
In[]:=
Manipulate[v=PolyhedronData[poly,"VertexCoordinates"];pol=GraphicsComplex[PolyhedronData[poly,"VertexCoordinates"],Polygon[PolyhedronData[poly,"FaceIndices"]]];no={White,MapIndexed[Text[#2[[1]],#1,Background->GrayLevel[0.1]]&,v]};Graphics3D[{{Opacity[0.5],pol},no},SphericalRegion->True,Boxed->False],{{poly,"RhombicTriacontahedron","polyhedron"},(#1PolyhedronData[#1,"Name"]&)/@PolyhedronData[All]},TrackedSymbolsTrue]
Out[]=
A spherical segment is made on the basis of RT coordinates
In[]:=
rt=PolyhedronData["RhombicTriacontahedron","Faces"];d1=SphericalPlot3DNorm[v〚2〛],{θ,0,VectorAngle[v〚2〛,v〚5〛]},ϕ,0,,BoundaryStyleBlack,RegionFunction({#1,#2,#3}.(v〚2〛-v〚8〛)>0&),MaxRecursion0,PlotPoints10,Mesh->None1;Graphics3D[{d1,Cyan,rt},BoxedFalse,SphericalRegionTrue,ImageSize200,ViewPoint{100,10,50}]
2π
5
Out[]=
If the PlotPoint is changed from 10 to 2, then a flat triangle is obtained, which can be considered as a face of the pentakis dodecahedron
In[]:=
d1=SphericalPlot3DNorm[v〚2〛],{θ,0,VectorAngle[v〚2〛,v〚5〛]},ϕ,0,,BoundaryStyleBlack,RegionFunction({#1,#2,#3}.(v〚2〛-v〚8〛)>0&),PlotPoints2,MaxRecursion0,Mesh->None1;Graphics3D[{d1,Cyan,rt},BoxedFalse,SphericalRegionTrue,ImageSize200,ViewPoint{100,10,50}]
2π
5
Out[]=
In[]:=
Manipulatev=PolyhedronData["RhombicTriacontahedron","VertexCoordinates"];d1=SphericalPlot3DNorm[v〚2〛],{θ,0,VectorAngle[v〚2〛,v〚5〛]},ϕ,0,,BoundaryStyleBlack,RegionFunction({#1,#2,#3}.(v〚2〛-v〚8〛)>0&),MaxRecursion0,PlotPointsconv,MeshNone,PlotStyleFaceForm[Yellow,Blue]1;d2=TableRotated1,,{0,0,1},{i,5};d3=TableRotateRotated2,,v5,,{0,0,1},{i,5};d3=Table[Rotate[Rotate[Rotate[d2,Pi,{0,0,1}],-2ArcTan[0.618],{0,1,0}],i2Pi/5,{0,0,1}],{i,5}];d4=Rotate[{d2,d3},π,{0,1,0}];Graphics3D[{d4,Translate[d2,{0,0,sep}],Translate[d3,{0,0,sep/2}]},BoxedFalse,SphericalRegionTrue,ImageSize300],{{conv,2,"convert to sphere"},{2"pentakis dodecahedron",10"sphere"}},{{sep,0,"separate"},0,1},TrackedSymbolsTrue
2π
5
i2π
5
4π
6
i2π
5
Out[]=
Applying the same procedure for icosahedron
In[]:=
Manipulatev=PolyhedronData["Icosahedron","VertexCoordinates"];h1a=SphericalPlot3DNorm[v〚2〛],{θ,0,VectorAngle[v〚2〛,v〚4〛]},ϕ,0,,RegionFunction({#1,#2,#3}.v〚4〛v〚12〛>0&),MaxRecursion0,PlotPointsconv,MeshNone,BoundaryStyleBlack,PlotStyleFaceForm[Green,Pink]1;h1=Translate[h1a,dis{1,1,1}];h1=Translate[h1a,disMean[v〚{2,4,12}〛]];h2=Rotateh1,-(2π),v4;h3=TranslateRotate{h1,h2},,{0,0,1}&/@Range[5],{0,0,sep};h4={Rotate[h3,π,{0,1,0}]};Graphics3D[{h3,h4},BoxedFalse,SphericalRegionTrue,ImageSize300],{{conv,6,""},{2"icosahedron",20"sphere"}},{{dis,0,"invert"},-3,0},{{sep,0,"separate halves"},0,0.5},TrackedSymbolsTrue
2π
5
1
5
2π#1
5
Out[]=

