Icosidodecahedron

Author

Eric W. Weisstein
January 5, 2024

This notebook downloaded from http://mathworld.wolfram.com/notebooks/Polyhedra/Icosidodecahedron.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/Icosidodecahedron.html.

©2024 Wolfram Research, Inc. except for portions noted otherwise

Figure

With[{pname="Icosidodecahedron"},
GraphicsRow[{
Graphics3D[{Opacity[.8],PolyhedronData[pname,"Polyhedron"]},Boxed->False],
Graphics3D[{PolyhedronData[pname,"Lines"]},Boxed->False],
PolyhedronData[pname,"Net"]
},ImageSize->700]]

Examples

FirstCase[Import["https://oeis.org/A000944/b000944.txt","Table"],{32,n_}:>n]

GraphData["Polyhedral",32]

Length[%]

TextGrid[Sort[PolyhedronData[#,{"F","V","E","#"}]&/@PolyhedronData["Simple",32]],Dividers->All,Alignment->{{{Decimal},Left}}]

<<MathWorld`Polyhedra`

icosahedra=Union[
{PolyhedronData[#,"Name"],Graphics3D[{Opacity[.3],PolyhedronData[#,"Polyhedron"]},Boxed->False]}&/@PolyhedronData["Simple",32],
{#,Graphics3D[{Opacity[.3],#2},Boxed->False]}&@@@{{"hexakaidecagonal dipyramid",Dipyramid[16,3,1]},{"triaconta\[Hyphen]digonal pyramid",RegularRightPyramid[31,0,3,1]},{"hexakaidecagonal prism",RegularRightPrism[16]}}]

Graphics

bug(422923): GraphicsRow/GraphicsGrid cut off plot label text

700/5.

GraphicsGrid[Partition[Show[#2,PlotLabel->TextCell[Style[#1,FontSlant->Italic,FontColor->Black,FontFamily->"Times"],TextAlignment->Center,Hyphenation->True,PageWidth->140],Boxed->False]&@@@icosahedra,UpTo[5]],Alignment->Top,Dividers->All,ImageSize->700]

Solid

PolyhedronData["Icosidodecahedron","Orientations"]

Show[PolyhedronData[{"Icosidodecahedron",#}],Boxed->False]&/@PolyhedronData["Icosidodecahedron","Orientations"]

Solid and Dual

GraphicsRow[PolyhedronData["Icosidodecahedron",#]&/@{"Graphics3D","Dual","DualCompound"}]

UniformPolyhedron

uniform=UniformPolyhedron[stdname="Icosidodecahedron"]

PolyhedronFaceTally[uniform]

indices=UniformPolyhedronIndex[stdname]

UniformPolyhedron/@{
stdname,
Lookup[indices,"Wenninger"],
Sequence@@(List@@@Normal[indices]/."Maeder"->"Uniform")
}

SameQ@@%

Graphics3D/@(polys=Polygon[uniform[[1]],#]&/@uniform[[2]])

Graphics3D[#,Boxed->False]&/@{uniform,polys}

Bulatov

BulatovUniformName[UniformPolyhedronIndex[stdname,"Kaleido"]]

BulatovUniformGraphics3D[UniformPolyhedronIndex[stdname,"Kaleido"],Boxed->False]

bulatov=BulatovUniformPolyhedron[UniformPolyhedronIndex[stdname,"Kaleido"]]

Graphics3D/@(polys=Polygon[bulatov[[1]],#]&/@bulatov[[2]])

PolyhedronFaceTally[bulatov]

Graphics3D[#,Boxed->False]&/@{bulatov,polys}

Maeder

MaederUniformName[UniformPolyhedronIndex[stdname,"Maeder"]]

wythoff=MaederWythoffSymbol[UniformPolyhedronIndex[stdname,"Maeder"]]

With[{n=UniformPolyhedronIndex[stdname,"Maeder"]},Import["https://www.mathconsult.ch/static/unipoly/"<>If[n<10,"0",""]<>ToString[n]<>".html","Images"]][[1]]

maeder=MaederUniformPolyhedron[UniformPolyhedronIndex[stdname,"Maeder"]]

Graphics3D/@(polys=Polygon[maeder[[1]],#]&/@maeder[[2]])

PolyhedronFaceTally[maeder]

Graphics3D[#,Boxed->False]&/@{maeder,polys}

Net

PolyhedronData["Icosidodecahedron","Net"]

PolyhedronData["Icosidodecahedron","Net","Colored"]

NetPrintout[PolyhedronData["Icosidodecahedron","Polyhedron"],"Cuboctahedron.pdf"]

Properties

Initialization

<<MathWorld`Polyhedra`

p=PolyhedronData[pname="Icosidodecahedron","Polyhedron"]

vol=PolyhedronData[pname,"Volume"]

Centroid

PolyhedronData["Icosidodecahedron","Centroid"]

RegionCentroid[PolyhedronData["Icosidodecahedron","Polyhedron"]]//RootReduce

PolyhedronCentroid[PolyhedronData["Icosidodecahedron","Polyhedron"]]//Quiet//RootReduce//Timing

Circumradius

PolyhedronData["Icosidodecahedron","Circumradius"]

Circumsphere[PolyhedronData["Icosidodecahedron","Polyhedron"]]//RootReduce//Timing

MyCircumsphere[PolyhedronData["Icosidodecahedron","Polyhedron"]]//RootReduce//Timing

ConvexHullOf

hullof=DeleteCases[Select[PolyhedronData[All],PolyhedronData[#,"ConvexHullName"]===pname&],pname]

GraphicsGrid[Partition[Graphics3D[{
{Green,Opacity[.7],PolyhedronData[#,"Polyhedron"]},
{Blue,Opacity[.4],PolyhedronData[#,"ConvexHull","Polyhedron"]}},Boxed->False,PlotLabel->Style[PolyhedronData[#,"Name"],Directive[14,Black,Italic,FontFamily->"Times"]]]&/@hullof,UpTo[4]],Dividers->All,ImageSize->800]

DihedralAngles

PolyhedronData["Icosidodecahedron","DihedralAngles"]//Union

N[%]

%/Degree

DihedralAngles[PolyhedronData["Icosidodecahedron","Polyhedron"]]//RootReduce//Union//Timing

Dual

pname

dname=PolyhedronData[pname,"Dual","Name"]

PolyhedronData[pname,"Dual","Scale"]

midrs={PolyhedronData[pname,"Midradius"],PolyhedronData[dname,"Midradius"]}

Divide@@midrs//FullSimplify

GraphicsRow[With[{
s={Yellow,PolyhedronData[pname,"Midsphere"]},
style=Directive[Black,Italic,FontFamily->"Times",14]
},
{
Graphics3D[{s,Green,Opacity[.5],PolyhedronData[pname,"Polyhedron"]},Boxed->False,PlotLabel->TextCell[Style[PolyhedronData[pname,"Name"],style],PageWidth->200,TextAlignment->Center]],
Graphics3D[{s,Red,Opacity[.5],PolyhedronData[pname,"Dual","Polyhedron"]},Boxed->False,PlotLabel->Style[PolyhedronData[dname,"Name"],style]],
Graphics3D[{
{Green,Opacity[.5],PolyhedronData[pname,"Polyhedron"]},
{Red,Opacity[.5],PolyhedronData[pname,"Dual","Polyhedron"]},
s
},Boxed->False,PlotLabel->Style["compound with midsphere",style]],
Graphics3D[{
PolyhedronData[pname,"Polyhedron"],
PolyhedronData[pname,"Dual","Polyhedron"]
},Boxed->False,PlotLabel->Style["compound",style]]
}],Alignment->Top,ImageSize->800]

EdgeLengths

PolyhedronData["Icosidodecahedron","EdgeLengths"]

PolyhedronData["Icosidodecahedron","Lines"]/.Line[l_]:>EuclideanDistance@@l//FullSimplify//Quiet//Union

Inradius

PolyhedronData["Icosidodecahedron","Inradius"]

Insphere[PolyhedronData["Icosidodecahedron","Polyhedron"]]

MyInsphere[PolyhedronData["Icosidodecahedron","Polyhedron"]]

InertiaTensor

PolyhedronData["Icosidodecahedron","InertiaTensor"]

((MomentOfInertia[PolyhedronData["Icosidodecahedron","Polyhedron"]])/(Volume[PolyhedronData["Icosidodecahedron","Polyhedron"]]))//RootReduce//Timing

(i=PolyhedronInertiaTensor[PolyhedronData["Icosidodecahedron","Polyhedron"]])//Timing

MeanCylindricalRadius

PolyhedronData["Icosidodecahedron","MeanCylindricalRadius"]

Integrate over Polyhedron

((NIntegrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/vol)

(i=((Integrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈p])/vol))//Timing

N[i]

Divergence theorem

(rxy=MeanCylindricalRadius[p,Debug->True,"Simplification"->RootReduce])//Timing

MeanCylindricalSquareRadius

((NIntegrate[(x^2)+(y^2),{x,y,z}∈PolyhedronData["Icosidodecahedron","Polyhedron"]])/(PolyhedronData["Icosidodecahedron","Volume"]))

(i=((Integrate[(x^2)+(y^2),{x,y,z}∈PolyhedronData["Icosidodecahedron","Polyhedron"]])/(PolyhedronData["Icosidodecahedron","Volume"]))//FullSimplify)//Timing

N[i]

MeanSphericalRadius

((NIntegrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/vol)

(i=((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈p])/vol))//Timing

MeanSphericalSquareRadius

((NIntegrate[(x^2)+(y^2)+(z^2),{x,y,z}∈PolyhedronData["Icosidodecahedron","Polyhedron"]])/(PolyhedronData["Icosidodecahedron","Volume"]))

(i=((Integrate[(x^2)+(y^2)+(z^2),{x,y,z}∈PolyhedronData["Icosidodecahedron","Polyhedron"]])/(PolyhedronData["Icosidodecahedron","Volume"]))//FullSimplify)//Timing

N[i]

Midradius

PolyhedronData["Icosidodecahedron","Midradius"]

Midsphere[p,"Simplification"->RootReduce]//Timing

Net

PolyhedronData[pname,"Net"]

Total[Area/@Flatten[PolyhedronData[pname,"Net","Polygon"]]]//ToAlgebraicRoot//Timing

PolyhedronData[pname,"SurfaceArea"]

poly3d=PolyhedronData[pname,"Net","Polygons"]/.Polygon[v_]:>Polygon[Append[#,0]&/@v]

Total[Area/@Flatten[poly3d]]//RootReduce//FullSimplify

Graphics3D[{FaceForm[Green,Red],poly3d},Axes->True,AxesLabel->{"x","y","z"}]

NotationRules

PolyhedronData[pname,"NotationRules"]

Orientations

PolyhedronData[pname,"Orientations"]

PolyhedronData[pname,"DefaultOrientation"]

Show[PolyhedronData[{pname,#}],Boxed->False]&/@PolyhedronData[pname,"Orientations"]

Polygons

PolyhedronData[pname,"FaceCount"]

Graphics3D/@PolyhedronData[pname,"Polygons"]

Show[%]

Polyhedra

PolyhedronData[pname,"Polyhedra"]

Graphics3D[%]

PolyhedronData[pname,"PolyhedronIndices"]

Region

PolyhedronData[pname,"Region"]

RegionFunction

PolyhedronData[pname,"RegionFunction"]

Collect[#,{x,y,z},RootReduce]&/@PolyhedronInequalities[p,{x,y,z}]

FullSimplify[%]

SimplePolyhedron

PolyhedronData[pname,"Simple"]

SimplePolyhedronQ[p]

Skeleton

PolyhedronData[pname,"Skeleton"]

gn=PolyhedronData[pname,"Skeleton","Name"]

emb=GraphData[gn,"PolyhedralEmbeddings"]

l={{gn,{0,Union[emb,{pname}]}}}

PropertyReplace[l,"PolyhedralEmbeddings","14.0"]

With[{gn=pname,verts=PolyhedronData[pname,"Vertices"],faces=PolyhedronData[pname,"Faces","List"]},
ToCommonEdges[GraphData[gn],Graph[Range[Length[verts]],UndirectedEdge@@@Union[Sort/@Flatten[Partition[#,2,1,1]&/@faces,1]]]]]//Chop[#,1*^-5]&//N

GraphData[gn,"Graph",{"3D","All"}]

g=PolyhedronGraph[p]

SurfaceArea

PolyhedronData["Icosidodecahedron","SurfaceArea"]

RootReduce[%]

SurfaceArea[PolyhedronData["Icosidodecahedron","Polyhedron"]]//RootReduce//Timing

Total[Area/@PolyhedronData["Icosidodecahedron","Polygons"]]//RootReduce//Timing

VertexSubsetHulls

subsethulls=PolyhedronData[pname,"VertexSubsetHulls"]

v=PolyhedronData[pname,"Vertices"];

Rule[#,Length[#2]]&@@@subsethulls

Rule[#,Graphics3D[Function[f,ConvexHullRegion[v[[f]]]]/@#2]]&@@@subsethulls

subsethulls2=Flatten[Function[{pn,l},Rule[pn,#]&/@l]@@@subsethulls]

Rule[#,Graphics3D[{{Opacity[.3],{Green,p}},Blue,ConvexHullRegion[v[[#2]]]}]]&@@@subsethulls2

Convex hull

Graphics3D[convexhullreg=ConvexHullRegion[v=PolyhedronData[pname,"Vertices"]]]

v=PolyhedronCoordinates[convexhullreg]

Flatten[(convexhullreg[[2]]/.i_Integer:>v[[i]])/.Thread[PolyhedronData[pname,"Vertices"]->Range[PolyhedronData[pname,"V"]]]]//Union

%===Range@Length@v

PolyhedronData[pname,"ConvexHull","Name"]

Platonic

(h=VertexSubsetHulls[p,"Platonic","Skip"->{}])//Timing

Volume

PolyhedronData["Icosidodecahedron","Volume"]

Volume[PolyhedronData["Icosidodecahedron","Polyhedron"]]//FullSimplify

PolyhedronVolume[PolyhedronData["Icosidodecahedron","Polyhedron"],Method->"GaussLaw"]//FullSimplify

Stellation

Graphics3D[Cumulate[Normal[PolyhedronData["Icosidodecahedron","Faces"]]//Flatten,{{3,1},{5,1.4}}],Boxed->False]

Graphics3D[Bevel[Cumulate[Normal[PolyhedronData["Icosidodecahedron","Faces"]]//Flatten//N,{{3,1},{5,1.4}}],.2],Boxed->False]

Faces

Show[GraphicsArray[partition[PolyhedronFaces[poly//N],10]]]

Triangular Faces

Together//@FullSimplify[Norm[Centroid[Select[poly,Length[#[[1]]]==3&][[1,1]]][[1]]]]

Pentagonal Faces

Together//@Simplify[Norm[Centroid[Select[poly,Length[#[[1]]]==5&][[1,1]]][[1]]]]

Projections

PolyhedronProjectionGraph[PolyhedronData["Icosidodecahedron","Polyhedron"],#,"Simplification"->FullSimplify]&/@{{0,1,0,π-ArcTan[(1/2)-((Sqrt[5])/2)]},{1,.01,0},{(3/4) (-1+(Sqrt[5])),(1/2) (Sqrt[(1/2) (5+(Sqrt[5]))]),1,π/2-ArcTan[(Sqrt[2]) (-2+(Sqrt[5]))]},{1,0,1},
{(1/8) (1+(Sqrt[5])),(Sqrt[(25/32)+((11 (Sqrt[5]))/32)]),-1,π-ArcTan[(Sqrt[(2/15) (7-3 (Sqrt[5]))])]},{-(Sqrt[(1/30) (5+(Sqrt[5]))]),(Sqrt[(1/6) (3-(Sqrt[5]))]),(Sqrt[(1/15) (5+2 (Sqrt[5]))]),ArcTan[(Sqrt[(1/6) (7-3 (Sqrt[5]))])]},{0,0,1}}

{,,,,,,}

GraphData["IcosidodecahedralGraph","Graph","Perspective"]

Vertex subset hulls

Platonic

(h=VertexSubsetHulls[PolyhedronData["Icosidodecahedron","Polyhedron"],"Platonic"])//Timing

g=Function[poly,Graphics3D[{
{Gray,Opacity[.2],EdgeForm[Thick],PolyhedronData[p,"Faces"]},ConvexHull3D[N[PolyhedronData[p,"VertexCoordinates"]][[#]]]&/@poly},Boxed->False]]/@h[[All,2]]

GraphicsGrid[{g},Spacings->-100]

Construction

IcosidodecahedronExact:=IcosidodecahedronExact=Module[{p,rim,ctr,i,h=Sqrt[(5+2Sqrt[5])/5],x2,golden=(Sqrt[5]+1)/2,z2=Sqrt[(5+Sqrt[5])/10],R=Sqrt[50+10Sqrt[5]]/10,half},x2=h;
p=Table[{R Cos[2Pi(i+1/2)/5],R Sin[2Pi(i+1/2)/5],h},{i,6}];
rim=Table[{x2 Cos[2Pi i/5],x2 Sin[2Pi i/5],z2},{i,6}];
ctr=Table[golden{Cos[2Pi(i+1/2)/10],Sin[2Pi(i+1/2)/10],0},{i,11}];
half=Flatten[{{Take[p,5]},Table[{p[[i]],p[[i+1]],rim[[i+1]]},{i,5}],Table[{ctr[[2i-1]],ctr[[2i]],rim[[i]]},{i,5}],Table[{ctr[[2i]],ctr[[2i+1]],rim[[i+1]],p[[i]],rim[[i]]},{i,5}]},1];
(*Need to explicitly Simplify here or else vertices have different analytic forms and are not recognized as identical by PolyhedronVertices*)Simplify[OrientCentered[Flatten[{Polygon/@half,Polygon/@(-half)}]]]]