Regular Dodecahedron

Author

Eric W. Weisstein
January 4, 2024

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

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

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

Figure

GraphicsRow[{
Graphics3D[{Opacity[.5],PolyhedronData["Dodecahedron","Polyhedron"]},Boxed->False],
Graphics3D[{PolyhedronData["Dodecahedron","Lines"]},Boxed->False],
PolyhedronData["Dodecahedron","Net"]
},ImageSize->700]

Polyhedron

PolyhedronData["Dodecahedron","Orientations"]

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

Solid and Dual

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

Orientations

axes=Line[{-#,#}]&/@Permutations[{1.7,0,0}];

Show[GraphicsArray[Graphics3D[{Polyhedron[Dodecahedron,#],{Red,Thickness[.02],axes}},PlotLabel->#,Boxed->False,ViewPoint->{5,1,0}]&/@{"C3","C5"}]]

Show[GraphicsArray[Graphics3D[{Polyhedron[Dodecahedron,#],Red,Thickness[.02],axes},Boxed->False,PlotLabel->#,ViewPoint->{0,0,5}]&/@{"C3","C5"}]]

UniformPolyhedron

uniform=UniformPolyhedron[stdname="Dodecahedron"]

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["Dodecahedron","Net"]

PolyhedronData["Dodecahedron","Net","Colored"]

NetPrintout[PolyhedronData["Dodecahedron","Polyhedron"],"Dodecahedron.pdf"]

Faces

Graphics3D/@PolyhedronData["Dodecahedron","Polygons"]

Properties

Initialization

<<MathWorld`Polyhedra`

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

vol=PolyhedronData[pname,"Volume"]

Centroid

PolyhedronData["Dodecahedron","Centroid"]

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

Circumradius

PolyhedronData["Dodecahedron","Circumradius"]

RootReduce[%]

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

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

ConvexHullOf

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

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

Insphere

PolyhedronData["Dodecahedron","Inradius"]

RootReduce[%]

Insphere[p]//RootReduce//Timing

MyInsphere[p]//RootReduce//Timing

InertiaTensor

PolyhedronData["Dodecahedron","InertiaTensor"]

N[%]

PolyhedronInertiaTensor[PolyhedronData["Dodecahedron","Polyhedron"]]//Timing

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

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

N[%]

Integrate over polyhedron

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

ClosestMeanCylindricalRadius[%]

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

CAD

(cad=CylindricalDecomposition[PolyhedronData[pname,"RegionFunction"][x,y,z],{x,y,z},"Function"])//Timing

((NIntegrate[(Sqrt[(x^2)+(y^2)])Boole[cad],{x,y,z}∈FullRegion[3]])/vol)

(rxy=((Integrate[(Sqrt[(x^2)+(y^2)])Boole[cad],{x,y,z}∈FullRegion[3]])/vol))//Timing

CAD over  1/4 [internal symbols exposed]

reg=FullSimplify[PolyhedronData[pname,"RegionFunction"][x,y,z]&&y>0&&z>0]

cad=CylindricalDecomposition[reg,{x,y,z},"Function"]

4((NIntegrate[(Sqrt[(x^2)+(y^2)])Boole[cad],{x,y,z}∈FullRegion[3]])/vol)

(rxy=4((Integrate[(Sqrt[(x^2)+(y^2)])Boole[cad],{x,y,z}∈FullRegion[3]])/vol))//Timing

bug(440050): Integrate[Sqrt[x^2 + y^2] Boole[DodecahedronCAD], {x, y, z} ∈ FullRegion[3]] returns internal symbol dump expression Hold[Hold[RuleCondition[Region`RegionIntegrateDump`res, Internal`LiterallyAbsentQ[Region`RegionIntegrateDump`res, Integrate]

Divergence theorem [unevaluated integral]

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

N[rxy]

ResourceFunction["LogSimplify"][rxy]//FullSimplify

Divergence theorem Simplification ->"FullSimplify" [unevaluated integral]

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

MeanInteriorLineSegmentLength

lbar=PolyhedronData[pname,"MeanInteriorLineSegmentLength"]

N[lbar,20]

ByteCount[lbar]

(lbarsimp=FullSimplify[lbar])//Timing

ByteCount[lbarsimp]

Dominik Beck.  "Mean distance in polyhedra."  https://arxiv.org/abs/2309.13177

lbar=(1516/1575)+(2/45)(Sqrt[(2/5)])-(124/175)(Sqrt[(3/5)])-((71(Sqrt[2]))/1575)-((12(Sqrt[3]))/35)+(342/(175(Sqrt[5])))+((493π)/23625)+((67π)/(945(Sqrt[5])))+(((397-244(Sqrt[5]))ArcCot[2])/18900)+(((24023+11788(Sqrt[5]))(ArcCos[2/3]-ArcCos[1/3]))/94500)-(((461+212(Sqrt[5]))(ArcCos[(23/41)]+ArcCos[(39/41)]))/1000)-(((1031+521(Sqrt[5]))ArcCosh[(13/3)])/75600)+(((367+163(Sqrt[5]))ArcCosh[9])/16800)+(((22197+8149(Sqrt[5]))(ArcCosh[(121/41)]-ArcCosh[(57/41)]))/84000)+(((15763+7063(Sqrt[5]))(ArcCosh[(7/3)]-ArcCosh[3]))/21000)+(2/875)(423+187(Sqrt[5]))(ArcCosh[4]-ArcCosh[2])+(((288889+129739(Sqrt[5]))Log[3])/378000)+(((109-3143(Sqrt[5]))Log[5])/151200);

N[lbar,20]

N[((lbar )/(((30+14(Sqrt[5])))^(1/3))),20]

(((-3+(7/(Sqrt[5]))))^(1/3))(((30+14(Sqrt[5])))^(1/3))//RootReduce

Solve[vol (a^3)==1,a,PositiveReals]//FullSimplify

N[(lbar/2),20]

ineq=PolyhedronData[pname,"RegionFunction"]

{{xmin,xmax},{ymin,ymax},{zmin,zmax}}=RegionBounds[ImplicitRegion[ineq[x,y,z],{x,y,z}]]//FullSimplify

(1/(vol^2)) NIntegrate[Sqrt[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]Boole[ineq[x1,y1,z1]&&ineq[x2,y2,z2]],
{x1,xmin,xmax},{y1,ymin,ymax},{z1,zmin,zmax},
{x2,xmin,xmax},{y2,ymin,ymax},{z2,zmin,zmax}]

(1/(vol^2)) NIntegrate[Sqrt[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]Boole[ineq[x1,y1,z1]&&ineq[x2,y2,z2]],
{x1,xmin,xmax},{y1,ymin,ymax},{z1,zmin,zmax},
{x2,xmin,xmax},{y2,ymin,ymax},{z2,zmin,zmax},
Method->{"GlobalAdaptive","MaxErrorIncreases"->1*^4}]//Timing

(1/(vol^2)) NIntegrate[Sqrt[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]Boole[ineq[x1,y1,z1]&&ineq[x2,y2,z2]],
{x1,xmin,xmax},{y1,ymin,ymax},{z1,zmin,zmax},
{x2,xmin,xmax},{y2,ymin,ymax},{z2,zmin,zmax},
Method->{"GlobalAdaptive","MaxErrorIncreases"->1*^5}]//Timing

Monte Carlo

reg=PolyhedronData[pname,"Region"]

Length[lines=Partition[RandomPoint[N@reg,10^7],2]]//Timing

Graphics3D[{{Opacity[.03],EdgeForm[],DiscretizeRegion[reg]},Red,Line/@Take[lines,UpTo@1000]},AspectRatio->Automatic]

lengths=Norm/@Subtract@@@lines;//Timing

Histogram[lengths,{.01}]

Mean[lengths]

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareCylindricalRadius"]

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

((Integrate[(x^2)+(y^2),{x,y,z}∈PolyhedronData[{"Dodecahedron",#},"Polyhedron"]])/(PolyhedronData["Dodecahedron","Volume"]))&/@PolyhedronData["Dodecahedron","Orientations"]//FullSimplify

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

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

((NIntegrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈PolyhedronData[{"Dodecahedron",#},"Polyhedron"]])/(PolyhedronData["Dodecahedron","Volume"]))&/@PolyhedronData["Dodecahedron","Orientations"]

((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈PolyhedronData["Dodecahedron","Polyhedron"]])/(PolyhedronData["Dodecahedron","Volume"]))//Timing

cad=CylindricalDecomposition[PolyhedronData["Dodecahedron","RegionFunction"][x,y,z],{x,y,z},"Function"]

(i=((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)])Boole[cad],{x,y,z}∈FullRegion[3]])/(PolyhedronData["Dodecahedron","Volume"])))//Timing

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

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

((Integrate[(x^2)+(y^2)+(z^2),{x,y,z}∈PolyhedronData[{"Dodecahedron",#},"Polyhedron"]])/(PolyhedronData["Dodecahedron","Volume"]))&/@PolyhedronData["Dodecahedron","Orientations"]//FullSimplify

Midradius

PolyhedronData["Dodecahedron","Midradius"]

Midsphere[PolyhedronData["Dodecahedron","Polyhedron"]]//RootReduce//Timing

SurfaceArea

PolyhedronData["Dodecahedron","SurfaceArea"]

RootReduce[%]

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

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

Volume

PolyhedronData["Dodecahedron","Volume"]

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

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

Projections

PolyhedronProjectionGraph[PolyhedronData["Dodecahedron","Polyhedron"],#]&/@{{1,0,GoldenRatio/2-1,π/2},{-(1/40) (Sqrt[650+290 (Sqrt[5])]),(1/8) (-3-(Sqrt[5])),(NumericalApproximation[Root, (RowDefault["0.263", FEExpressionsNumericalApproximationElider]), Root[1-20 ((#1)^2)+80 ((#1)^4)&,3], ]),π/10},{1,0,-.001,π/2},{0,1,0,-π/6},{0,0,1},{1,0,1},{1,0,-1},{1.,5/2,5/2,-π/8}}

GraphData["DodecahedralGraph","Graph","Perspective"]

Inequalities

ineqadodec=FullSimplify[PolyhedronInequalities[Polyhedron[Dodecahedron],{x,y,z}]]

<<Calculus`Integration`
<<Graphics`InequalityGraphics`

InequalityPlot3D[N[i],{x},{y},{z}]//Timing

l=List@@And@@(PolyhedronInequalities[#,{x,y,z}]&@DodecahedronExact)//N;

Show[Graphics3D[PolyhedronFromInequalities[l,{x,y,z}]]]

Vertex subset hulls

p="Dodecahedron";

Platonic

(h=VertexSubsetHulls[p,"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]

Cube

Show[Graphics3D[{{Thickness[.01],SplitLines[frame[dodecahedron[]],1]},dodeccube}],
	Boxed->False,ViewPoint->{1,-3,.7},
	LightSources->{{{1.,0.,1.},RGBColor[1,0,0]},
	{{1.,1.,1.},RGBColor[0,1,0]},
	{{0.,1.,1.},RGBColor[0,0,1]},
	{{-1.,-1.,-1.},RGBColor[.5,.5,.5]}}]

Dodecahedron Golden Rectangles

WriteLiveForm["dodecphi.m",
	Show[NonIntersectingPolygons[Graphics3D[{{Thickness[.01],frame[dodecahedron[]]},GoldenRectangles}]],Boxed->False,ViewPoint->{1,-3,.7},
	LightSources->{{{1.,0.,1.},RGBColor[1,0,0]},
	{{1.,1.,1.},RGBColor[0,1,0]},
	{{0.,1.,1.},RGBColor[0,0,1]},
	{{-1.,-1.,-1.},RGBColor[.5,.5,.5]}}]]

Show[Graphics3D[{{Thickness[.01],frame[dodecahedron[]]},golden}],Boxed->False,ViewPoint->{1,-3,.7}]

Dodecahedron Hexagon

pt[a_,b_]:=(a+b)/2
hexagon:=Module[
	{top,bot,topV,botV,
			i,r=1/Sqrt[10-2Sqrt[5]]},
	top=Table[r{2Cos[2/5 Pi i],2Sin[2/5 Pi i],GoldenRatio+1},{i,5}];
	bot=-top;
	topV=Table[r{
		2GoldenRatio Cos[2/5 Pi i],
		2GoldenRatio Sin[2/5 Pi i],
		GoldenRatio-1},{i,5}];
	botV=-topV;
	{
		pt[bot[[4]],botV[[4]]],
		pt[bot[[5]],botV[[5]]],
		pt[botV[[1]],topV[[3]]],
		pt[top[[4]],topV[[4]]],
		pt[top[[5]],topV[[5]]],
		pt[topV[[1]],botV[[3]]]
	}
]

WriteLiveForm["dodhex1.m",
	Show[Graphics3D[SplitLines[{frame[dodecahedron[]],Polygon[ hexagon]},1]],
					Boxed->False,ViewPoint->{-1.2,-2,1}]]

WriteLiveForm["dodhex2.m",Show[PolyhedronPolygon[dodecahedron[]//N,hexagon//N],Boxed->False,ViewPoint->{-1.2,-2,1}]]

Show[GraphicsArray[{			
				Show[Graphics3D[{frame[dodecahedron], hexagon}],
					Boxed->False,ViewPoint->{-1.2,-2,1},DisplayFunction->Identity],
				Show[Graphics3D[{dodecahedron[[1]],{line[hexagon[[1]]]}}],
					Boxed->False,ViewPoint->{-1.2,-2,1},DisplayFunction->Identity]}],
	DisplayFunction->$DisplayFunction
]

Dodecahedron Decagon

dodecagonDodec:=Module[
	{i,r=1.32},
	Polygon[Table[r{Cos[Pi i/5+Pi/10],Sin[Pi i/5+Pi/10],0},{i,10}]]
]

WriteLiveForm["dodecdo1.m",Show[Graphics3D[SplitLines[{frame[dodecahedron[]],dodecagonDodec},1]],
					Boxed->False,ViewPoint->{-1.2,-2,1}]]

Show[Graphics3D[{dodecahedron[],line[dodecagonDodec[[1]]]}//N],
					Boxed->False,ViewPoint->{-1.2,-2,1}]

WriteLiveForm["dodecdo2.m",
	Show[PolyhedronPolygon[dodecahedron[]//N,dodecagonDodec[[1]]//N],opts]]

Show[GraphicsArray[{
Show[Graphics3D[{frame[dodecahedron],dodecagonDodec}],
		Boxed->False,DisplayFunction->Identity,ViewPoint->{.2,-3,2.7}],
			Show[Graphics3D[{dodecahedron[[1]],line[dodecagonDodec[[1]]]}],
					Boxed->False,DisplayFunction->Identity,ViewPoint->{.2,-3,2.7}]
			}],DisplayFunction->$DisplayFunction]

8-Dodecahedron Rhombus

V5

d1=Polyhedron[Dodecahedron,"C2"];

Show[Graphics3D[{d1,Thickness[.02],Line@PolyhedronEdges[d1][[23]]}],ViewPoint->{0,0,5}]

θ=2ArcCos[FullSimplify[{-1,0}.(#/Norm[#]&[Most[Subtract@@(PolyhedronEdges[d1][[23]])]])]]

Show[Graphics3D[{d1,Thickness[.02],Line@PolyhedronEdges[d1][[16]]}],ViewPoint->{0,0,5}]

m=FullSimplify[Most[Plus@@PolyhedronEdges[d1][[16]]]/2]

<<PolyhedronOperations`

Show[Graphics3D[{d1,PointSize[.02],Point[Centroid[d1[[1,5]]]]}],ViewPoint->{1,1,5},
ViewVertical->{0,1,0}]

FullSimplify[2Centroid[d1[[1,5]]]]

{dx,dy}={(1/10) (5+3 (Sqrt[5])),1+(2/(Sqrt[5]))};

2*%

m-c

q=FullSimplify[c+2(m-c)+Identity[m-c]]//N

Append[x,0]

N[off]

FullSimplify[Sqrt[%.%]]

2.%

2Inradius[Dodecahedron]//N

Table[(2+j),{j,-1,1,2}]

θ

OrientedQ[d2]

d1=Polyhedron[Dodecahedron,"C2"];
d2=d1/.Polygon[x_]:>Table[Polygon[{(j+2)dx ,i dy,0}+RotationMatrixZ[-i j θ].#&/@x],{i,-1,1,2},{j,-1,1,2}];
d3=d1/.Polygon[x_]:>Table[Polygon[2{dx,i dy,0}+#&/@x],{i,-1,1,2}];
d4=d1/.Polygon[x_]:>Polygon[{4dx,0,0}+#&/@x];
Show[Graphics3D[{d1,d2,d3,d4}],ViewPoint->{0,0,50000}]

Show[Graphics3D[Flatten[{d1,d2,d3,d4}]],Boxed->False,ViewPoint->{0,0,2}]

d1=Polyhedron[Dodecahedron,"C2"];
d2=d1/.Polygon[x_]:>Table[Polygon[{(j+2)dx ,i dy,0}+RotationMatrixZ[-i j θ].#&/@x],{i,-1,1,2},{j,-1,1,2}];
d3=d1/.Polygon[x_]:>Table[Polygon[2{dx,i dy,0}+#&/@x],{i,-1,1,2}];
d4=d1/.Polygon[x_]:>Polygon[{4dx,0,0}+#&/@x];
Show[Graphics3D[{d1,d2,d3,d4}],Boxed->False]

<<LiveGraphics3D`

<<Graphics`Colors`

WriteLiveForm["dodec8r.m",Show[Graphics3D[Flatten[{d1,d2,d3,d4}]],Boxed->False,LightSources->{{{0,0,2},White},{{0,0,-2},Red}}]]

ArcCos[FullSimplify[Divide@@Through[{Midradius,Circumradius}[Dodecahedron]]]]

<<Simplify`

ToExact[%241]

Show[Graphics3D[{{Thickness[.02],Line[{{0,0,0},{0,0,5}}],Line[{{0,0,0},{5,0,0}}]},Polyhedron[Dodecahedron,"C3"]/.Polygon[x_]:>Polygon[RotationMatrixY[.364].#&/@x]}],Boxed->False,
   ViewPoint->{0,0,500}
]

Show[Graphics3D[Polyhedron[Dodecahedron],Boxed->False,
   ViewPoint->500{0, 1,0},
   ViewVertical->{1/2,0,-1}
]]

V6

{dx,dy}={(1/10) (5+3 (Sqrt[5])),1+(2/(Sqrt[5]))};
θ=2 ArcCos[(Sqrt[(1/10) (5+(Sqrt[5]))])];
d1=Normal[PolyhedronData[{"Dodecahedron","C2"},"Faces"]];
d2=d1/.Polygon[x_]:>Table[Polygon[{(j+2)dx ,i dy,0}+RotationMatrix[i j θ,{0,0,1}].#&/@x],{i,-1,1,2},{j,-1,1,2}];
d3=d1/.Polygon[x_]:>Table[Polygon[2{dx,i dy,0}+#&/@x],{i,-1,1,2}];
d4=d1/.Polygon[x_]:>Polygon[{4dx,0,0}+#&/@x];
Graphics3D[{d1,d2,d3,d4}]

Construction

Polyhedra.m

<<Graphics`Polyhedra`

Show[Polyhedron[Dodecahedron]]

(Subscript[C, 3])

Quit[]

DodecahedronExactZ:=Module[
	{l,
	sina=Root[16-60#^2+45#^4&,3],
	cosa=Root[1-30#^2+45#^4&,4]
	},
	(* cosa is the dot product of (0,0,1) with the top polygon
	   vertex V pointing parallel to the x-axis, and sina is
	   Sin[ArcCos[cosa]].  Rotate about the y-axis to bring V
	   along the z-axis
	*)
	Polyhedron[Dodecahedron] /. Polygon[l_List]:>
		Polygon[{{cosa,0,-sina},{0,1,0},{sina,0,cosa}}.#&/@l]
]

Show[Graphics3D[Polyhedron[Dodecahedron]//N],ViewPoint->2{0,0,1}]

Show[Graphics3D[Polyhedron[Dodecahedron,"C3"]]]

(Subscript[C, 5])

θ1=2ArcCos[FullSimplify[Divide@@Through[{Midradius,Circumradius}[Dodecahedron]]]]

θ2=ArcCos[FullSimplify[Divide@@Through[{Inradius,Circumradius}[Dodecahedron]]]]

Plus@@N[{θ1,θ2}]

FullSimplify[Cos[TrigToExp[θ1+θ2]]]

FullSimplify[ArcCos[(Sqrt[(1/15) (5-2 (Sqrt[5]))])]]

Show[Graphics3D[poly=FullSimplify[Polyhedron[Dodecahedron,"C3"]/.Polygon[x_]:>Polygon[RotationMatrixY[ArcCos[(Sqrt[(1/15) (5-2 (Sqrt[5]))])]].#&/@x]]]]

N[PolyhedronVertices[poly],10]//Union//Length

(p1=RootReduce[PolyhedronVertices[poly]]//Union)//Length

FullSimplify[RootReduce[poly[[1,#[[1]],1,#[[2]]]]&/@(First[Position[PolyhedronFaces[Dodecahedron],#]]&/@Range[20])]]//InputForm

(Subscript[C, 2])

θ=ArcCos[FullSimplify[Divide@@Through[{Midradius,Circumradius}[Dodecahedron]]]]

poly=FullSimplify[Polyhedron[Dodecahedron,"C3"]/.Polygon[x_]:>Polygon[RotationMatrixY[θ].#&/@x]];

poly==Polyhedron[Dodecahedron,"C2"]

poly[[1,#[[1]],1,#[[2]]]]&/@(First[Position[PolyhedronFaces[Dodecahedron],#]]&/@Range[20])

InputForm[%]

Show[Graphics3D[poly]]

Show[Graphics3D[{{Thickness[.02],Line[{{0,0,0},{0,0,5}}],Line[{{0,0,0},{5,0,0}}]},poly}],Boxed->False,
   ViewPoint->{0,0,500}
]

<<Simplify`
Off[N::"meprec"]

poly2=Map[ToExact,Flatten[poly],{3}];
(v=PolyhedronVertices[poly2])//InputForm
First/@poly2/.Thread[v->Range[Length[v]]]

Stellation

FaceIntersections[poly_]:=Module[{pairs=KSubsets[Take[#,3]&/@First/@poly,2]},
DeleteCases[Intersection3D@@@Map[Plane,pairs,{2}],{}]
]

poly=Dodecahedron;
Timing[lines=FaceIntersections[Polyhedron[poly]];]

Timing[newlines=Map[ToExact,lines,{4}];]

Timing[newlines2=Map[RootReduce,lines,{4}];]

Timing[points=Intersection3D@@@KSubsets[newlines,2];]

Show[Graphics3D[{Polyhedron[poly],{Red,newlines},{PointSize[.02],points}}]]

<<ConvexHull`

Length[points]

Length[points2=DeleteCases[points,{}]]

Length[points3=Union[points2,SameTest->(Abs[N[#1[[1]]-#2[[1]],200]]=={0,0,0}&)]]

Length[points4=Map[ToExact,points3,{3}]]

Show[{Graphics3D[Polyhedron[Dodecahedron]],WireFrame[Graphics3D[ConvexHull3D[First/@points4]]]},Boxed->False]