Convex Hull

Author

Eric W. Weisstein
September 10, 2023

This notebook downloaded from http://mathworld.wolfram.com/notebooks/ComputationalGeometry/ConvexHull.nb.

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

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

2-D

ComputationalGeometry package [obsolete]

<<ComputationalGeometry`

data2D=Table[Random[Real,{0,10}],{10},{2}]

data2D={{0.10457309591435798`,5.430237001903211`},{5.239731113513573`,4.657925803860964`},{3.5430677227026113`,3.236357785807062`},{5.195005248403346`,2.107874470850189`},{4.636609770418187`,8.415461995572581`},{4.159783711063608`,0.9518439588298254`},{4.452737693860736`,5.065092032798766`},{1.1119450550065189`,3.78178806230279`},{0.20529913964257906`,2.530807544980291`},{6.952256340391596`,7.223393673595124`}};

hull=ConvexHull[data2D]

Graphics[{Point[data2D],EdgeForm[Black],Opacity[.2],Blue,Polygon[data2D[[hull]]]},ImageSize->200]

ConvexHullMesh

SeedRandom[2]

pts=RandomReal[{-1,1},{8,2}];

conv=ConvexHullMesh[data2D]

conv//InputForm

Polygon[MeshCoordinates[conv]]

Graphics[%]

AtomQ@ConvexHullMesh

pts=MeshPrimitives[conv, 0]

hullpts=pts[[All,1]]/.Thread[data2D->Range[Length[data2D]]]

Graphics[Polygon[data2D[[hullpts]]]]

You are assuming the order of the points in the Polygon is identical to the order of points in MeshCoordinates.
Use MeshPrimitives[conv, 2] to get the primitives. Maybe with the hidden options “Multicells”->True to get multi-primitives.

poly=MeshPrimitives[conv, 2]

hull=poly[[1,1]]/.Thread[data2D->Range[Length[data2D]]]

MeshPrimitives[conv, 2,"Multicells"->True]

Graphics[{Point[data2D],EdgeForm[Black],Opacity[.2],Blue,poly},ImageSize->200]

3-D

MathWorld ConvexHull Package

v5

<<DiscreteMath`ComputationalGeometry`

data3D=Table[Random[Real,{0,10}],{7},{3}]

data3D={{4.927795583608166`,8.018257868631354`,6.948785133363814`},{8.706880975440724`,8.224620347660672`,3.097231868923674`},{6.503086890476322`,1.8512833788032224`,9.919286541816767`},{6.086669210633041`,1.5741410038212904`,4.983361874781701`},{4.902794654598919`,6.492801001562252`,0.41816325626872825`},{7.9922246548479965`,3.614932727047298`,4.067537736586136`},{6.310071159242688`,2.031594676371081`,1.9825558634166853`}};

p={PointSize[.05],Point/@data3D};
Show[GraphicsArray[{
points=Graphics3D[p],
hull=Graphics3D[{p,ConvexHull3D[data3D]},Boxed->False]
}]]

Show[Graphics3D[p]]

Show[Graphics3D[{p,ConvexHull3D[data3D]},Boxed->False]]

LiveGraphics3D

<<Utilities`LiveGraphics3D`

WriteLiveForm["hullpts.m",points]

WriteLiveForm["hullsol.m",hull]

v6

data3D={{4.927795583608166`,8.018257868631354`,6.948785133363814`},{8.706880975440724`,8.224620347660672`,3.097231868923674`},{6.503086890476322`,1.8512833788032224`,9.919286541816767`},{6.086669210633041`,1.5741410038212904`,4.983361874781701`},{4.902794654598919`,6.492801001562252`,0.41816325626872825`},{7.9922246548479965`,3.614932727047298`,4.067537736586136`},{6.310071159242688`,2.031594676371081`,1.9825558634166853`}};

hull=ConvexHull3D[data3D]

Graphics3D[hull]

v=hull[[1]]

polys=hull[[2,-1,-1,1]]

Polygon/@(polys/.Thread[Range[7]->v])

Show[Graphics3D[{Polygon[{{4.927795583608166`,8.018257868631354`,6.948785133363814`},{8.706880975440724`,8.224620347660672`,3.097231868923674`},{4.902794654598919`,6.492801001562252`,0.41816325626872825`}}],Polygon[{{8.706880975440724`,8.224620347660672`,3.097231868923674`},{6.310071159242688`,2.031594676371081`,1.9825558634166853`},{4.902794654598919`,6.492801001562252`,0.41816325626872825`}}],Polygon[{{7.9922246548479965`,3.614932727047298`,4.067537736586136`},{6.503086890476322`,1.8512833788032224`,9.919286541816767`},{6.086669210633041`,1.5741410038212904`,4.983361874781701`}}],Polygon[{{6.086669210633041`,1.5741410038212904`,4.983361874781701`},{4.927795583608166`,8.018257868631354`,6.948785133363814`},{4.902794654598919`,6.492801001562252`,0.41816325626872825`}}],Polygon[{{6.310071159242688`,2.031594676371081`,1.9825558634166853`},{6.086669210633041`,1.5741410038212904`,4.983361874781701`},{4.902794654598919`,6.492801001562252`,0.41816325626872825`}}],Polygon[{{8.706880975440724`,8.224620347660672`,3.097231868923674`},{6.503086890476322`,1.8512833788032224`,9.919286541816767`},{7.9922246548479965`,3.614932727047298`,4.067537736586136`}}],Polygon[{{6.310071159242688`,2.031594676371081`,1.9825558634166853`},{8.706880975440724`,8.224620347660672`,3.097231868923674`},{7.9922246548479965`,3.614932727047298`,4.067537736586136`}}],Polygon[{{4.927795583608166`,8.018257868631354`,6.948785133363814`},{6.503086890476322`,1.8512833788032224`,9.919286541816767`},{8.706880975440724`,8.224620347660672`,3.097231868923674`}}],Polygon[{{6.310071159242688`,2.031594676371081`,1.9825558634166853`},{7.9922246548479965`,3.614932727047298`,4.067537736586136`},{6.086669210633041`,1.5741410038212904`,4.983361874781701`}}],Polygon[{{6.503086890476322`,1.8512833788032224`,9.919286541816767`},{4.927795583608166`,8.018257868631354`,6.948785133363814`},{6.086669210633041`,1.5741410038212904`,4.983361874781701`}}]}]]

TetGenLink

Needs["TetGenLink`"]

data3D = RandomReal[{0,1},{100,3}];

{pts, surface}=TetGenConvexHull[data3D];

Graphics3D[GraphicsComplex[pts,Polygon[surface]]]

Graphics`Mesh`ConvexHull3D

SeedRandom[123];

d1=Table[{x=RandomReal[{-1,1}],y=RandomReal[{-1,1}],z=RandomReal[{-1,1}]}/Norm[{x,y,z}],{1000}];

d2=Table[{Random[],Random[],Random[]}+1.5,{3000}];

dd=Join[d1,d2];

Graphics3D[Point[dd],Axes->True]

ComputationalGeometry`Methods`ConvexHull3D[dd]

ComputationalGeometry`Methods`ConvexHull3D[dd,Mesh->None,PlotStyle->Yellow]

ComputationalGeometry`Methods`ConvexHull3D[dd,Mesh->5,PlotStyle->Yellow]

ComputationalGeometry`Methods`ConvexHull3D[PolyhedronData["Cube","VertexCoordinates"],"OriginalCoordinates"->True]

ComputationalGeometry`Methods`ConvexHull3D[PolyhedronData["Cube","VertexCoordinates"],"OriginalCoordinates"->True]//InputForm

Dodecahedron Bug

bug(152703)

o=PolyhedronData["Dodecahedron","Orientations"]

PolyhedronData[{"Dodecahedron",#}]&/@o

Length[Graphics`Mesh`ConvexHull3D[PolyhedronData[{"Dodecahedron",#},"VertexCoordinates"]][[1,1]]]&/@o

Length[bad=Graphics`Mesh`ConvexHull3D[PolyhedronData[{"Dodecahedron","C3"},"VertexCoordinates"]][[1,1]]]

Graphics3D[{Opacity[.5],Graphics`Mesh`ConvexHull3D[PolyhedronData[{"Dodecahedron","C3"},"VertexCoordinates"]][[1]]/.EdgeForm[_]->EdgeForm[]},Boxed->False]

Convex

bug(77616)

Print[Row[{#,Show[Graphics`Mesh`ConvexHull3D[PolyhedronData[#,"VertexCoordinates"]]/.EdgeForm[_]:>EdgeForm[GrayLevel[.5]],Boxed->False,Axes->False,ImageSize->Small]}]]&/@PolyhedronData["Convex"];

ConvexHullMesh

hull=ConvexHullMesh[PolyhedronCoordinates[Cube[]]]

MeshCells[hull,2]

Note faces are triangulated

ConvexHullRegion

hull=ConvexHullRegion[PolyhedronCoordinates[Cube[]]]

$TopDirectory

Head[hull]

f=MeshCells[hull,2]

MeshCells[hull,1]

MeshCells[hull,0]

v=MeshCoordinates[hull]

Graphics3D[{FaceForm[Green,Red],Polyhedron[v,f[[All,1]]]}]

Kingman-Groemer generalization

FullSimplify[FunctionExpand[(n+2)Binomial[n+1,(n+1)/2]^(n+1)/(Binomial[(n+1)^2,(n+1)^2/2]2^n)]]

FullSimplify[FunctionExpand[Table[(n+2)Binomial[n+1,(n+1)/2]^(n+1)/(Binomial[(n+1)^2,(n+1)^2/2]2^n),{n,7}]]]

Table[2^n(3n-3)!/(n-1)!^3/(2n)!,{n,10}]

Table[(Binomial[2n-2,n-1]/n!)^2,{n,10}]

Table

data={PolyhedronData[#,"ConvexHullName"],#}&/@Complement[PolyhedronData[All],PolyhedronData["Convex"]];

TextGrid[{#[[1,1]],#[[All,2]]}&/@SplitBy[SortBy[DeleteCases[data,{_Missing,_}],First],First],Dividers->All]

PolyhedronData

Concave

fi=ConvexHullRegion[PolyhedronData["CsaszarPolyhedron","Polyhedron"]][[2]]

v=PolyhedronData["CsaszarPolyhedron","Vertices"];

Graphics3D[Polygon/@(fi/.i_Integer:>v[[i]])]

InputForm[%]

%[[1]]//InputForm

Rule[#,ConvexHullRegion[PolyhedronData[#,"Vertices"]][[2]]]&/@PolyhedronData["Concave"]

"CsaszarPolyhedron"

{Graphics3D[p=PolyhedronData["CsaszarPolyhedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["CsaszarPolyhedron","ConvexHull","Polyhedron"]]}

PolyhedronData["CsaszarPolyhedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"CubeFiveCompound"

Graphics3D[p=PolyhedronData["CubeFiveCompound","Polyhedron"]]

Graphics3D[hull=ConvexHullRegion[p[[1]]]]

Norm[hull[[1]][[1]]]//FullSimplify

PolyhedronData["Dodecahedron"]

PolyhedronData["Dodecahedron","Circumradius"]

FullSimplify[(((Sqrt[3])/2)/((1/4) ((Sqrt[3])+(Sqrt[15]))))]

Graphics3D[{Opacity[.5],Red,PolyhedronData["CubeFiveCompound","GraphicsComplex"],Yellow,PolyhedronData["CubeFiveCompound","ConvexHull","Polyhedron"]}]

{"CubeFourCompound", 1} (non-regular truncated octahedron)

{Graphics3D[p=PolyhedronData[{"CubeFourCompound",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"CubeFourCompound",1},"ConvexHull","Polyhedron"]]}

PolyhedronData[{"CubeFourCompound",1},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"CubeFourCompound", 2}

{Graphics3D[p=PolyhedronData[{"CubeFourCompound",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"CubeFourCompound",2},"ConvexHull","Polyhedron"]]}

PolyhedronData[{"CubeFourCompound",2},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"CubeOctahedronCompound"

{Graphics3D[p=PolyhedronData["CubeOctahedronCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["CubeOctahedronCompound","ConvexHull","Polyhedron"]]}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

Norm[hull[[1]][[1]]]//FullSimplify

PolyhedronData["RhombicDodecahedron","Orientations"]

PolyhedronData["RhombicDodecahedron"]

(v=RotationMatrix[π/4,{0,0,1}].#&/@PolyhedronData["RhombicDodecahedron","Vertices"])(Sqrt[3])

<<MathWorld`PolyhedronOperations`

PolyhedronInequalities[Polyhedron[v,PolyhedronData["RhombicDodecahedron","FaceIndices"]],{#1,#2,#3}]//FullSimplify

r1=Max[Norm/@hull[[1]]]

r2=Max[Norm/@PolyhedronData["RhombicDodecahedron","Vertices"]]

FullSimplify[(r1/r2)]

"CubeOctahedronFiveCompound"

{Graphics3D[p=PolyhedronData["CubeOctahedronFiveCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["CubeOctahedronFiveCompound","ConvexHull","Polyhedron"]],
PolyhedronData["Icosidodecahedron"]}

PolyhedronData["CubeOctahedronFiveCompound","ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

"CubeOctahedronThreeCompound"

{Graphics3D[p=PolyhedronData["CubeOctahedronThreeCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["CubeOctahedronThreeCompound","ConvexHull","Polyhedron"]]}

Length/@List@@hull

Select[PolyhedronData[32],PolyhedronData[#,"V"]==42&]

PolyhedronData["CubeOctahedronThreeCompound","ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

"CubeSixCompound"

{Graphics3D[p=PolyhedronData["CubeSixCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["CubeSixCompound","ConvexHull","Polyhedron"]]}

Length/@List@@hull

Select[PolyhedronData[48],PolyhedronData[#,"V"]==64&]

PolyhedronData["CubeOctahedronThreeCompound","ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

"CubeTenCompound"

{Graphics3D[p=PolyhedronData["CubeTenCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["CubeTenCompound","ConvexHull","Polyhedron"]]}

Length/@List@@hull

Select[PolyhedronData[80],PolyhedronData[#,"V"]==72&]

PolyhedronData["CubeTenCompound","ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

"CubeThreeCompound"

{Graphics3D[p=PolyhedronData["CubeThreeCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["CubeThreeCompound","ConvexHull","Polyhedron"]]}

Length/@List@@hull

Select[PolyhedronData[24],PolyhedronData[#,"V"]==14&]

PolyhedronData/@%

PolyhedronData["CubeThreeCompound","ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

{"CubeTwoCompound", 1} (nonequilateral hexagonal dipyramid)

{Graphics3D[p=PolyhedronData[{"CubeTwoCompound",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"CubeTwoCompound",1},"ConvexHull","Polyhedron"]]}

Length/@List@@hull

Select[PolyhedronData[14],PolyhedronData[#,"V"]==18&]

PolyhedronData[{"CubeTwoCompound",1},"ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

{"CubeTwoCompound", 2}

{Graphics3D[p=PolyhedronData[{"CubeTwoCompound",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"CubeTwoCompound",2},"ConvexHull","Polyhedron"]]}

{Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[10],PolyhedronData[#,"V"]==16&]

PolyhedronData[{"CubeTwoCompound",2},"ConvexHull",#]&/@{"Name","Scale"}

FunctionExpand[(Sqrt[2]) Sin[(π/8)]]//FullSimplify

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData[{"Prism",8},"Vertices"]]//FullSimplify

h1=PolyhedronData[{"Prism",8},"Vertices"][[All,-1]]//Max

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify

h2=hull[[1]][[All,-1]]//Max

FullSimplify[{(r2/r1),(h2/h1)}]

{"CuboctahedronStellation", 1}

{Graphics3D[p=PolyhedronData[{"CuboctahedronStellation",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"CuboctahedronStellation",1},"ConvexHull","Polyhedron"]],
PolyhedronData[{"RhombicDodecahedron","C4x"}]}

{Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[12],PolyhedronData[#,"V"]==14&]

PolyhedronData[{"CuboctahedronStellation",1},"ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["RhombicDodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

{"CuboctahedronStellation", 1}

{Graphics3D[p=PolyhedronData[{"CuboctahedronStellation",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"CuboctahedronStellation",1},"ConvexHull","Polyhedron"]],
PolyhedronData[{"RhombicDodecahedron","C4x"}]}

{Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[12],PolyhedronData[#,"V"]==14&]

PolyhedronData[{"CuboctahedronStellation",1},"ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["RhombicDodecahedron","Vertices"]]//FullSimplify

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify

FullSimplify[(r2/r1)]

"DodecahedronFiveCompound"

{Graphics3D[p=PolyhedronData["DodecahedronFiveCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["DodecahedronFiveCompound","ConvexHull","Polyhedron"]]}

PolyhedronData["DodecahedronFiveCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Opacity[.5],Red,p,Yellow,hull}]

"DodecahedronIcosahedronCompound"

{Graphics3D[p=PolyhedronData["DodecahedronIcosahedronCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["DodecahedronIcosahedronCompound","ConvexHull","Polyhedron"],Axes->True,AxesLabel->{"x","y","z"}],
Graphics3D[p2=PolyhedronData[{"RhombicTriacontahedron","C3"},"Polyhedron"]]}

Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[PolyhedronData[{"RhombicTriacontahedron","C3"},"Vertices"][[All,-1]]]//FullSimplify//Quiet

r2=Max[p[[1]][[All,-1]]]//FullSimplify

FullSimplify[(r2/r1)]

N[%]

"DodecahedronSixCompound"

{Graphics3D[p=PolyhedronData["DodecahedronSixCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["DodecahedronSixCompound","ConvexHull","Polyhedron"]]}

PolyhedronData["DodecahedronSixCompound","ConvexHull",#]&/@{"Name","Scale"}

SimplifyNumericallyDistinct[MeshCells[hull,1]/.Line[l_]:>EuclideanDistance@@hull[[1]][[l]]]//Tally

N[%[[All,1]]]

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"DodecahedronSmallTriambicIcosahedronCompound"

{Graphics3D[p=PolyhedronData["DodecahedronSmallTriambicIcosahedronCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["DodecahedronSmallTriambicIcosahedronCompound","ConvexHull","Polyhedron"]],
PolyhedronData["PentakisDodecahedron"]}

{Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[60],PolyhedronData[#,"V"]==32&]

PolyhedronData["DodecahedronSmallTriambicIcosahedronCompound","ConvexHull",#]&/@{"Name","Scale"}

SimplifyNumericallyDistinct[MeshCells[hull,1]/.Line[l_]:>EuclideanDistance@@hull[[1]][[l]]]//Tally

N[%[[All,1]]]

1/Divide@@PolyhedronData["PentakisDodecahedron","EdgeLengths"]//FullSimplify

N[%]

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"DodecahedronSmallTriambicIcosahedronCompoundHull"

{Graphics3D[p=PolyhedronData["DodecahedronSmallTriambicIcosahedronCompoundHull","Polyhedron"]],Graphics3D[hull=PolyhedronData["DodecahedronSmallTriambicIcosahedronCompoundHull","ConvexHull","Polyhedron"]],
PolyhedronData["PentakisDodecahedron"]}

{Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[60],PolyhedronData[#,"V"]==32&]

PolyhedronData["DodecahedronSmallTriambicIcosahedronCompoundHull","ConvexHull",#]&/@{"Name","Scale"}

Graphics3D[MeshPrimitives[hull,1],Boxed->False]

SimplifyNumericallyDistinct[MeshCells[hull,1]/.Line[l_]:>EuclideanDistance@@hull[[1]][[l]]]//Tally

MeshCells[hull,1]/.Line[l_]:>EuclideanDistance@@N[hull[[1]]][[l]]//Tally

N[%[[All,1]]]

1/Divide@@PolyhedronData["PentakisDodecahedron","EdgeLengths"]//FullSimplify

N[%]

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"DodecahedronStellation", 1}

{Graphics3D[p=PolyhedronData[{"DodecahedronStellation",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"DodecahedronStellation",1},"ConvexHull","Polyhedron"]],
PolyhedronData["Icosahedron"]}

PolyhedronData[{"DodecahedronStellation",1},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Icosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

N[%]

1+GoldenRatio//N

{"DodecahedronStellation", 2}

{Graphics3D[p=PolyhedronData[{"DodecahedronStellation",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"DodecahedronStellation",2},"ConvexHull","Polyhedron"]],
PolyhedronData["Icosahedron"]}

PolyhedronData[{"DodecahedronStellation",2},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Icosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"DodecahedronStellation", 3}

{Graphics3D[p=PolyhedronData[{"DodecahedronStellation",3},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"DodecahedronStellation",3},"ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

PolyhedronData[{"DodecahedronStellation",3},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"DodecahedronTwoCompound"

{Graphics3D[p=PolyhedronData["DodecahedronTwoCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["DodecahedronTwoCompound","ConvexHull","Polyhedron"]]}

PolyhedronData["DodecahedronTwoCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"Echidnahedron" (non-equilateral truncated icosahedron)

{Graphics3D[p=PolyhedronData["Echidnahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["Echidnahedron","ConvexHull","Polyhedron"]],}

PolyhedronData["Echidnahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"EquilateralAugmentedCube"

{Graphics3D[p=PolyhedronData["EquilateralAugmentedCube","Polyhedron"]],Graphics3D[hull=PolyhedronData["EquilateralAugmentedCube","ConvexHull","Polyhedron"]],PolyhedronData["SmallTriakisOctahedron"]}

{Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[24],PolyhedronData[#,"V"]==14&]

PolyhedronData["EquilateralAugmentedCube","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["SmallTriakisOctahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"EquilateralAugmentedDodecahedron"

{Graphics3D[p=PolyhedronData["EquilateralAugmentedDodecahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["EquilateralAugmentedDodecahedron","ConvexHull","Polyhedron"]],PolyhedronData["TriakisIcosahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["EquilateralAugmentedDodecahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["TriakisIcosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"EquilateralAugmentedTetrahedron"

{Graphics3D[p=PolyhedronData["EquilateralAugmentedTetrahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["EquilateralAugmentedTetrahedron","ConvexHull","Polyhedron"]],PolyhedronData["TriakisTetrahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["EquilateralAugmentedTetrahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["TriakisTetrahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"EscherSolid"

{Graphics3D[p=PolyhedronData["EscherSolid","Polyhedron"]],Graphics3D[hull=PolyhedronData["EscherSolid","ConvexHull","Polyhedron"]],
PolyhedronData["Cuboctahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["EscherSolid","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Cuboctahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"GreatDodecahedron"

{Graphics3D[p=PolyhedronData["GreatDodecahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["GreatDodecahedron","ConvexHull","Polyhedron"]],
PolyhedronData["Icosahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["GreatDodecahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Icosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"GreatIcosahedron"

{Graphics3D[p=PolyhedronData["GreatIcosahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["GreatIcosahedron","ConvexHull","Polyhedron"]],
PolyhedronData["Icosahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["GreatIcosahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Icosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"GreatRhombicTriacontahedron"

{Graphics3D[p=PolyhedronData["GreatRhombicTriacontahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["GreatRhombicTriacontahedron","ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["GreatRhombicTriacontahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"GreatStellatedDodecahedron"

{Graphics3D[p=PolyhedronData["GreatStellatedDodecahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["GreatStellatedDodecahedron","ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["GreatStellatedDodecahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@Most/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

N[%,20]

(2 - phi)*(2 + phi) = 2 - 1/phi = 3 - phi = (5 - sqrt (5))/2 = (2*sin (Pi/5))^2

"IcosahedronFiveCompound"

{Graphics3D[p=PolyhedronData["IcosahedronFiveCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["IcosahedronFiveCompound","ConvexHull","Polyhedron"]]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["IcosahedronFiveCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

N[%,20]

(2 - phi)*(2 + phi) = 2 - 1/phi = 3 - phi = (5 - sqrt (5))/2 = (2*sin (Pi/5))^2

"IcosahedronSixCompound"

{Graphics3D[p=PolyhedronData["IcosahedronSixCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["IcosahedronSixCompound","ConvexHull","Polyhedron"]]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["IcosahedronFiveCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

N[%,20]

(2 - phi)*(2 + phi) = 2 - 1/phi = 3 - phi = (5 - sqrt (5))/2 = (2*sin (Pi/5))^2

{"IcosahedronStellation", 3}

{Graphics3D[p=PolyhedronData[{"IcosahedronStellation",3},"Polyhedron"],Axes->True],Graphics3D[hull=PolyhedronData[{"IcosahedronStellation",3},"ConvexHull","Polyhedron"],Axes->True],
Graphics3D[PolyhedronData["Icosidodecahedron","Polyhedron"],Axes->True]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"IcosahedronStellation",3},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"IcosahedronStellation", 11}

{Graphics3D[p=PolyhedronData[{"IcosahedronStellation",11},"Polyhedron"],Axes->True],Graphics3D[hull=PolyhedronData[{"IcosahedronStellation",11},"ConvexHull","Polyhedron"],Axes->True],
Graphics3D[PolyhedronData["Icosahedron","Polyhedron"],Axes->True]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"IcosahedronStellation",11},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"IcosahedronTwoCompound" (non-equilateral truncated octahedron)

{Graphics3D[p=PolyhedronData["IcosahedronTwoCompound","Polyhedron"],Axes->True],Graphics3D[hull=PolyhedronData["IcosahedronTwoCompound","ConvexHull","Polyhedron"],Axes->True],
Graphics3D[PolyhedronData["TruncatedOctahedron","Polyhedron"],Axes->True]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["IcosahedronTwoCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"IcosidodecahedronStellation", 1}

{Graphics3D[p=PolyhedronData[{"IcosidodecahedronStellation",1},"Polyhedron"],Axes->True],Graphics3D[hull=PolyhedronData[{"IcosidodecahedronStellation",1},"ConvexHull","Polyhedron"],Axes->True],
Graphics3D[PolyhedronData[{"RhombicTriacontahedron","C3"},"Polyhedron"],Axes->True]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"IcosidodecahedronStellation",1},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData[{"RhombicTriacontahedron","C3"},"Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"JessensOrthogonalIcosahedron"

{Graphics3D[p=PolyhedronData["JessensOrthogonalIcosahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["JessensOrthogonalIcosahedron","ConvexHull","Polyhedron"]],
PolyhedronData[{"Icosahedron","C2"}]}

PolyhedronData["Icosahedron","Orientations"]

PolyhedronData["JessensOrthogonalIcosahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData[{"Icosahedron","C2"},"Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"MathematicaPolyhedron"

{Graphics3D[p=PolyhedronData["MathematicaPolyhedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["MathematicaPolyhedron","ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

PolyhedronData["MathematicaPolyhedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"OctahedronFiveCompound"

{Graphics3D[p=PolyhedronData["OctahedronFiveCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["OctahedronFiveCompound","ConvexHull","Polyhedron"]],
PolyhedronData["Icosidodecahedron"]}

PolyhedronData["OctahedronFiveCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosidodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"OctahedronFourCompound", 1} (non-equilateral TruncatedCube)

{Graphics3D[p=PolyhedronData[{"OctahedronFourCompound",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"OctahedronFourCompound",1},"ConvexHull","Polyhedron"]],
PolyhedronData["TruncatedCube"]}

PolyhedronData[{"OctahedronFourCompound",1},"ConvexHull",#]&/@{"Name","Scale"}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//FullSimplify//Tally

%[[All,1]]//N

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"OctahedronFourCompound", 2}

{Graphics3D[p=PolyhedronData[{"OctahedronFourCompound",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"OctahedronFourCompound",2},"ConvexHull","Polyhedron"]]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"OctahedronFourCompound",2},"ConvexHull",#]&/@{"Name","Scale"}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//FullSimplify//Tally

%[[All,1]]//N

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"OctahedronTenCompound" (non-equilateral truncated icosahedron)

{Graphics3D[p=PolyhedronData["OctahedronTenCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["OctahedronTenCompound","ConvexHull","Polyhedron"]]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["OctahedronTenCompound","ConvexHull",#]&/@{"Name","Scale"}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

%[[All,1]]//N

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"OctahedronThreeCompound"

{Graphics3D[p=PolyhedronData["OctahedronThreeCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["OctahedronThreeCompound","ConvexHull","Polyhedron"]]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["OctahedronTenCompound","ConvexHull",#]&/@{"Name","Scale"}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

%[[All,1]]//N

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"PentagonalPrismSixCompound" (non-equilateral truncated icosahedron)

{Graphics3D[p=PolyhedronData["PentagonalPrismSixCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["PentagonalPrismSixCompound","ConvexHull","Polyhedron"]]}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["PentagonalPrismSixCompound","ConvexHull",#]&/@{"Name","Scale"}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

%[[All,1]]//N

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"Prism", {6, 2}}

{Graphics3D[p=PolyhedronData[{"Prism",{6,2}},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"Prism",{6,2}},"ConvexHull","Polyhedron"]],
PolyhedronData[{"Prism",6}]}

PolyhedronData[{"Prism",{6,2}},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

h1=Max[PolyhedronData[{"Prism",6},"Vertices"][[All,-1]]]//Quiet

h2=Max[p[[1]][[All,-1]]]//Quiet

FullSimplify[(h2/h1)]

r1=Max[Norm/@Most/@PolyhedronData[{"Prism",6},"Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"Prism", {8, 2}}

{Graphics3D[p=PolyhedronData[{"Prism",{8,2}},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"Prism",{8,2}},"ConvexHull","Polyhedron"]],
PolyhedronData[{"Prism",8}]}

PolyhedronData[{"Prism",{8,2}},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

h1=Max[PolyhedronData[{"Prism",8},"Vertices"][[All,-1]]]//Quiet

h2=Max[p[[1]][[All,-1]]]//Quiet

FullSimplify[(h2/h1)]

r1=Max[Norm/@Most/@PolyhedronData[{"Prism",8},"Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"RhombicDodecahedronStellation", 1}

{Graphics3D[p=PolyhedronData[{"RhombicDodecahedronStellation",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"RhombicDodecahedronStellation",1},"ConvexHull","Polyhedron"]],
PolyhedronData["Cuboctahedron"]}

PolyhedronData[{"RhombicDodecahedronStellation",1},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Cuboctahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"RhombicDodecahedronStellation", 2} (non-equilateral SmallRhombicuboctahedron)

{Graphics3D[p=PolyhedronData[{"RhombicDodecahedronStellation",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"RhombicDodecahedronStellation",2},"ConvexHull","Polyhedron"]]}

PolyhedronData[{"RhombicDodecahedronStellation",2},"ConvexHull",#]&/@{"Name","Scale"}

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"RhombicDodecahedronStellation", 3} (non-equilateral TruncatedOctahedron)

{Graphics3D[p=PolyhedronData[{"RhombicDodecahedronStellation",3},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"RhombicDodecahedronStellation",3},"ConvexHull","Polyhedron"]],
PolyhedronData["TruncatedOctahedron"]}

PolyhedronData[{"RhombicDodecahedronStellation",2},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"RhombicHexecontahedron"

{Graphics3D[p=PolyhedronData["RhombicHexecontahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["RhombicHexecontahedron","ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

PolyhedronData["RhombicHexecontahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"SmallStellatedDodecahedron"

{Graphics3D[p=PolyhedronData["SmallStellatedDodecahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["SmallStellatedDodecahedron","ConvexHull","Polyhedron"]],
PolyhedronData["Icosahedron"]}

PolyhedronData["SmallStellatedDodecahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Icosahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"SmallTriambicIcosahedron"

{Graphics3D[p=PolyhedronData["SmallTriambicIcosahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["SmallTriambicIcosahedron","ConvexHull","Polyhedron"]],
PolyhedronData["PentakisDodecahedron"]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

1/Divide@@%[[All,1]]

FullSimplify[%]

PolyhedronData["PentakisDodecahedron","EdgeLengths"]

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["SmallTriambicIcosahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["PentakisDodecahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"StellatedOctahedron"

{Graphics3D[p=PolyhedronData["StellatedOctahedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["StellatedOctahedron","ConvexHull","Polyhedron"]],
PolyhedronData[{"Cube","C3x"}]}

PolyhedronData[{"Cube","C3"},"Orientations"]

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["StellatedOctahedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["Cube","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"SzilassiPolyhedron" (disphenoid)

{Graphics3D[p=PolyhedronData["SzilassiPolyhedron","Polyhedron"]],Graphics3D[hull=PolyhedronData["SzilassiPolyhedron","ConvexHull","Polyhedron"]]}

PolyhedronData["SzilassiPolyhedron","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"TetragonalDisphenoidSixCompound"

{Graphics3D[p=PolyhedronData["TetragonalDisphenoidSixCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["TetragonalDisphenoidSixCompound","ConvexHull","Polyhedron"]],PolyhedronData[{"TruncatedOctahedron","C4xy"}]}

PolyhedronData["TruncatedOctahedron","Orientations"]

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["TetragonalDisphenoidSixCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["TruncatedOctahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

"TetrahedronFiveCompound"

{Graphics3D[p=PolyhedronData["TetrahedronFiveCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["TetrahedronFiveCompound","ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{Graphics3D[p=PolyhedronData[{"TetrahedronFiveCompound","Laevo"},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"TetrahedronFiveCompound","Laevo"},"ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

g2=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

GraphicsRow[{g1,g2}]

r1=Max[Norm/@hull[[1]]]//FullSimplify

r2=Max[Norm/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify

FullSimplify[(r1/r2)]

{"TetrahedronFourCompound", 1}

{Graphics3D[p=PolyhedronData[{"TetrahedronFourCompound",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"TetrahedronFourCompound",1},"ConvexHull","Polyhedron"]]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"TetrahedronFourCompound",1},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"TetrahedronFourCompound", 2}

{Graphics3D[p=PolyhedronData[{"TetrahedronFourCompound",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"TetrahedronFourCompound",2},"ConvexHull","Polyhedron"]]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"TetrahedronFourCompound",2},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

{"TetrahedronFourCompound", 3}

{Graphics3D[p=PolyhedronData[{"TetrahedronFourCompound",3},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"TetrahedronFourCompound",3},"ConvexHull","Polyhedron"]]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"TetrahedronFourCompound",3},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"TetrahedronSixCompound" (non-equilateral truncated octahedron)

{Graphics3D[p=PolyhedronData["TetrahedronSixCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["TetrahedronSixCompound","ConvexHull","Polyhedron"]]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["TetrahedronSixCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

"TetrahedronTenCompound"

{Graphics3D[p=PolyhedronData["TetrahedronTenCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["TetrahedronTenCompound","ConvexHull","Polyhedron"]],
PolyhedronData["Dodecahedron"]}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@hull[[1]]]//FullSimplify

r2=Max[Norm/@PolyhedronData["Dodecahedron","Vertices"]]//FullSimplify

FullSimplify[(r1/r2)]

"TetrahedronThreeCompound"

{Graphics3D[p=PolyhedronData["TetrahedronThreeCompound","Polyhedron"]],Graphics3D[hull=PolyhedronData["TetrahedronThreeCompound","ConvexHull","Polyhedron"]],PolyhedronData[{"Antiprism",6}]}

Graphics3D[{MapIndexed[Text[#2[[1]],#,Background->White]&,v=hull[[1]]],hull}]

ArcTan@@Most[v[[9]]-v[[5]]]//FullSimplify

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData["TetrahedronThreeCompound","ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

h1=Max[PolyhedronData[{"Antiprism",6},"Vertices"][[All,-1]]]//FullSimplify//Quiet

h2=Max[p[[1]][[All,-1]]]//FullSimplify//Quiet

FullSimplify[(h2/h1)]

r1=Max[Norm/@Most/@PolyhedronData[{"Antiprism",6},"Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@Most/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"TetrahedronTwoCompound", 1}

{Graphics3D[p=PolyhedronData[{"TetrahedronTwoCompound",1},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"TetrahedronTwoCompound",1},"ConvexHull","Polyhedron"]],PolyhedronData[{"Cube","C3x"}]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"TetrahedronTwoCompound",1},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]

r1=Max[Norm/@PolyhedronData["TruncatedOctahedron","Vertices"]]//FullSimplify//Quiet

r2=Max[Norm/@p[[1]]]//FullSimplify//Quiet

FullSimplify[(r2/r1)]

{"TetrahedronTwoCompound", 2}

{Graphics3D[p=PolyhedronData[{"TetrahedronTwoCompound",2},"Polyhedron"]],Graphics3D[hull=PolyhedronData[{"TetrahedronTwoCompound",2},"ConvexHull","Polyhedron"]]}

EuclideanDistance@@@(Union[Sort/@Flatten[Partition[#,2,1,1]&/@hull[[2]],1]]/.i_Integer:>hull[[1]][[i]])//RootReduce//FullSimplify//Tally//Quiet

{facecount,vertexcount}={Length[hull[[2]]],Union[Flatten[hull[[2]]]]//Length}

Select[PolyhedronData[facecount],PolyhedronData[#,"V"]==vertexcount&]

PolyhedronData[{"TetrahedronTwoCompound",2},"ConvexHull",#]&/@{"Name","Scale"}

g1=Graphics3D[{Red,p,Opacity[.5],Yellow,hull}]