Antiprism

Author

Eric W. Weisstein
August 23, 2023

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

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

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

Solids

antiprisms=Table[Graphics3D[PolyhedronData[{"Antiprism",n},"Polyhedron"],Boxed->False],{n,3,10}];

GraphicsRow[antiprisms]

GraphicsGrid[Partition[antiprisms,UpTo[4]]]

Nets

GraphicsGrid[Partition[Table[PolyhedronData[{"Antiprism",n},"Net"],{n,3,10}],UpTo[4]]]

Properties (n)

Circumradius

With[{R=Csc[Pi/n]/2,h=Sqrt[1-Sec[Pi/2/n]^2/4]},FullSimplify[Sqrt[(h/2)^2+R^2]]]//FullSimplify

Table[(1/4) (Sqrt[4+((Csc[(π/(2 n))])^2)]),{n,3,10}]

FullSimplify[%]

Table[PolyhedronData[{"Antiprism",n},"Circumradius"],{n,3,10}]

FullSimplify[%]

Height

FullSimplify[Sqrt[l^2-s^2-1/4a^2] /. s->1/2 Tan[Pi/2/n]]

FullSimplify[Table[Sqrt[1-1/4 Sec[Pi/2/n]^2],{n,3,8}]]

Inradius

Table[PolyhedronData[{"Antiprism",n},"Inradius"],{n,3,4}]

Table[Insphere[PolyhedronData[{"Antiprism",n},"Polyhedron"]],{n,3,10}]//Quiet

Table[Insphere[PolyhedronData[{"Antiprism",n},"Polyhedron"]//N],{n,3,10}]//Chop//Quiet

MeanCylindricalRadius

Table[((NIntegrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"])),{n,3,10}]

Table[((Integrate[(Sqrt[(x^2)+(y^2)]),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"])),{n,3,3}]

N[%]

MeanSquareCylindricalRadius

Table[((NIntegrate[(x^2)+(y^2),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"])),{n,3,10}]

data=Table[{n,Sequence@@Timing[((Integrate[(x^2)+(y^2),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"]))//RootReduce//FullSimplify]},{n,3,10}];//Timing

TextGrid[data,Dividers->All]

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

MeanSphericalRadius

Table[((NIntegrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"])),{n,3,10}]

Table[((Integrate[(Sqrt[(x^2)+(y^2)+(z^2)]),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"])),{n,3,3}]

N[%]

MeanSphericalSquareRadius

Table[((NIntegrate[(x^2)+(y^2)+(z^2),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"])),{n,3,10}]

data=Table[{n,Sequence@@Timing[((Integrate[(x^2)+(y^2)+(z^2),{x,y,z}∈PolyhedronData[{"Antiprism",n},"Polyhedron"]])/(PolyhedronData[{"Antiprism",n},"Volume"]))//RootReduce//FullSimplify]},{n,3,10}];//Timing

TextGrid[data,Dividers->All]

N[%]

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

Midradius

ρ=With[{R=Csc[Pi/n]/2,h=Sqrt[1-Sec[Pi/2/n]^2/4]},
FullSimplify[Norm[Mean[{{R,0,h/2},{R Cos[2π/n],R Sin[2π/n],h/2}}]],n>2&&n∈Integers]
]

Plot[((Sec[(π/(2 n))])^2)-4,{n,3,10}]

FullSimplify[ρ/.Abs[x_]->-x,n>0]

Plot[Sin[(π/(2 n))],{n,3,20}]

Table[(1/4)Csc[(π/(2n))],{n,3,10}]

FullSimplify[%]

Table[PolyhedronData[{"Antiprism",n},"Midradius"],{n,3,10}]

N[%]

PointPlaneDistance

Cross[{-s,a/2,h},{-s,-a/2,h}]

u=FullSimplify[Unit[Cross[{-s,a/2,h},{-s,-a/2,h}]]]

FullSimplify[u.{R-s,-a/2,h/2} /. {s->a/2 Tan[Pi/2/n],R->1/2 a Csc[Pi/n]}]

hpyr=FullSimplify[u.{R,0,-h/2} /. {s->a/2 Tan[Pi/2/n],R->1/2 a Csc[Pi/n]}]

PowerExpand[FullSimplify[2n hpyr(1/2 a Sqrt[s^2+h^2])/3 /.s->a/2 Tan[Pi/2/n]]]

vtri=PowerExpand[FullSimplify[%/.{h->Sqrt[1-1/4 Sec[Pi/2/n]^2],a->1}]]

vbase=FullSimplify[2/3 1/4 n a^2 Cot[Pi/n]h/2/.{h->Sqrt[1-1/4 Sec[Pi/2/n]^2],a->1}]

v=vbase+vtri

Simplify[v]

FullSimplify[Table[(1/24) n (1+2 Cos[(π/n)]) Csc[(π/(2 n))] Sec[(π/(2 n))] (Sqrt[1-(1/4) ((Sec[(π/(2 n))])^2)]),{n,3,8}]]

ToRadicals[RootReduce[Table[PolyhedronVolume[UnitAntiprism[n]],{n,3,8}]]]

Together//@%

Simplify[%]

SurfaceArea

sa=FullSimplify[2  1/4 n a^2 Cot[Pi/n]+2 n 1/2 a Sqrt[1/4a^2 Tan[Pi/2/n]^2+h^2]]

Simplify[sa /. a->1]

s1=Simplify[Table[(1/2) n ((Sqrt[3])+Cot[(π/n)]),{n,3,8}]]

s2=ToRadicals[RootReduce[Table[PolyhedronSurfaceArea[UnitAntiprism[n]],{n,3,8}]]]

FullSimplify[s2]

Volume

XXX

Properties

{"Antiprism", 4}

Initialization

p=PolyhedronData[pname={"Antiprism",4},"Polyhedron"]

vol=PolyhedronData[pname,"Volume"]

Centroid

PolyhedronData[pname,"Centroid"]

Graphics3D[{AbsolutePointSize[10],
Point[{0,0,0}],{Blue,Point[PolyhedronData[pname,"Centroid"]]},Opacity[.2],PolyhedronData[pname,"GraphicsComplex"]}]

RegionCentroid[p]//FullSimplify

PolyhedronCentroid[p]

Circumsphere

sphere=PolyhedronData[pname,"Circumsphere"]

sphere=Circumsphere[p]//FullSimplify

(sphere=MyCircumsphere[p])//Timing

Graphics3D[{{Opacity[.2],Yellow,sphere},{Red,p}},Boxed->False]

Compound

PolyhedronData[pname,"Compound"]

Convex

PolyhedronData[pname,"Convex"]

ConvexPolyhedronQ[p]

DihedralAngles

PolyhedronData[pname,"DihedralAngles"]//Tally

SimplifyNumericallyDistinct[DihedralAngles[p]]//Tally

EdgeCount

PolyhedronData[pname,"EdgeCount"]

EdgeLengths

PolyhedronData[pname,"EdgeLengths"]

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

lens=SimplifyNumericallyDistinct[PolyhedronEdgeLengths[p]];//Quiet

(distinctlens=Mean/@Split[Sort[lens],Abs[#1-#2]<1.*^-10&])//N//Quiet

v=PolyhedronCoordinates[p];

colors=With[{n=Length[distinctlens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[distinctlens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[p],Boxed->False]//Quiet

FaceCount

PolyhedronData[pname,"FaceCount"]

Faces

GeneralizedDiameter

PolyhedronData[pname,"GeneralizedDiameter"]

GeneralizedDiameter[p]//FullSimplify//Quiet

InertiaTensor

PolyhedronData[pname,"InertiaTensor"]

(i=((MomentOfInertia[p,{0,0,0}])/(Volume[p]))//FullSimplify)//Timing

PolyhedronInertiaTensor[p]//Timing

Insphere

PolyhedronData[pname,"Insphere"]

Insphere[p]

sphere=MyInsphere[p]

Graphics3D[{{Opacity[.5],p},{Red,sphere}},Boxed->False]

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

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

Divergence theorem

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

MeanCylindricalRadius GenerateConditions ->True

PolyhedronData[pname,"MeanCylindricalRadius"]

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

Divergence theorem

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

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareCylindricalRadius"]

((NIntegrate[(x^2)+(y^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

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

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

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

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

{{xmin,xmax},{ymin,ymax},{zmin,zmax}}=MinMax/@Transpose[PolyhedronCoordinates[p]]

ineq=PolyhedronData[pname,"RegionFunction"][x,y,z]

(i1=Integrate[Boole[ineq](Sqrt[(x^2)+(y^2)+(z^2)]),{z,zmin,zmax}])//Timing

NIntegrate[(i1/vol),{x,xmin,xmax},{y,ymin,ymax}]

(i2=Integrate[(i1/vol),{x,xmin,xmax},{y,ymin,ymax}])//Timing

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

((NIntegrate[(x^2)+(y^2)+(z^2),{x,y,z}∈p])/(PolyhedronData[pname,"Volume"]))//Timing

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

Midsphere

sphere=PolyhedronData[pname,"Midsphere"]

(sphere=Midsphere[p])//Timing

(sphere=Midsphere[p,Method->"PointLineDistance"]//FullSimplify)//Timing

Graphics3D[{{Opacity[.5],Yellow,p},{Red,sphere}},Boxed->False]

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"]

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

SurfaceArea

PolyhedronData[pname,"SurfaceArea"]

SurfaceArea[p]//RootReduce//Timing

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

VertexCount

PolyhedronData[pname,"FaceCount"]

VertexSubsetHulls

PolyhedronData[pname,"VertexSubsetHulls"]

Platonic

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

Volume

PolyhedronData[pname,"Volume"]

Volume[p]//FullSimplify

PolyhedronVolume[p]//FullSimplify

ByteCount/@{(1/3) (Sqrt[4+3 (Sqrt[2])]),(1/3) ((2^(1/4))+(2^(3/4)))}

{"Antiprism", 5}

Initialization

<<MathWorld`Polyhedra`

p=PolyhedronData[pname={"Antiprism",5},"Polyhedron"]

vol=PolyhedronData[pname,"Volume"]

Centroid

PolyhedronData[pname,"Centroid"]

Graphics3D[{AbsolutePointSize[10],
Point[{0,0,0}],{Blue,Point[PolyhedronData[pname,"Centroid"]]},Opacity[.2],PolyhedronData[pname,"GraphicsComplex"]}]

RegionCentroid[p]//FullSimplify

PolyhedronCentroid[p]//FullSimplify//Quiet

Circumsphere

sphere=PolyhedronData[pname,"Circumsphere"]

sphere=Circumsphere[p]//FullSimplify

(sphere=MyCircumsphere[p])//Timing

Graphics3D[{{Opacity[.2],Yellow,sphere},p},Boxed->False]

Classes

PolyhedronData[pname,"Classes"]

Compound

PolyhedronData[pname,"Compound"]

Convex

PolyhedronData[pname,"Convex"]

ConvexPolyhedronQ[p]

ConvexHull

PolyhedronData[pname,"ConvexHull"]

convexhull=ConvexHullRegion[PolyhedronData[pname,"Vertices"]]

v=PolyhedronCoordinates[convexhull]//FullSimplify

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

Graphics3D[{FaceForm[Green,Red],convexhull,MapIndexed[Text[#2[[1]],#,Background->White]&,v]}]

{Graphics3D[{Red,Opacity[.5],p}],Graphics3D[{Blue,Opacity[.5],PolyhedronData[pname,"ConvexHull"][[1]]}]}

Show[%]

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

DehnInvariant

PolyhedronData[pname,"DehnInvariant"]

(dehn=DehnInvariant[p,Debug->True])//Timing

ToConwayBasis[dehn]

DihedralAngles

PolyhedronData[pname,"DihedralAngles"]//Tally

SimplifyNumericallyDistinct[DihedralAngles[p]]//Tally

EdgeCount

PolyhedronData[pname,"EdgeCount"]

EdgeLengths

Tally[PolyhedronEdgeLengths[p]//FullSimplify]

PolyhedronData[pname,"EdgeLengths"]

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

lens=SimplifyNumericallyDistinct[PolyhedronEdgeLengths[p]];//Quiet

(distinctlens=Mean/@Split[Sort[lens],Abs[#1-#2]<1.*^-10&])//N//Quiet

v=PolyhedronCoordinates[p];

colors=With[{n=Length[distinctlens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[distinctlens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[p],Boxed->False]//Quiet

FaceCount

PolyhedronData[pname,"FaceCount"]

GeneralizedDiameter

PolyhedronData[pname,"GeneralizedDiameter"]

GeneralizedDiameter[p]//FullSimplify//Quiet

Hull

PolyhedronData[pname,"Hull","Name"]

PolyhedronData[pname,"Hull","Scale"]

PolyhedronData[pname,"Hull"]

Max[Norm/@PolyhedronData[pname,"Hull","Polyhedron"][[1]]]//FullSimplify

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

{Graphics3D[{Opacity[.5],Red,p}],Graphics3D[{Opacity[.5],Blue,PolyhedronData[pname,"Hull"][[1]]}]}

Show[%]

InertiaTensor

PolyhedronData[pname,"InertiaTensor"]

(i=((MomentOfInertia[p,{0,0,0}])/(Volume[p]))//FullSimplify)//Timing

PolyhedronInertiaTensor[p]//Timing

Insphere

PolyhedronData[pname,"Insphere"]

Insphere[p]

sphere=MyInsphere[p]

Graphics3D[{{Opacity[.5],p},{Red,sphere}},Boxed->False]

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

N[%]

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

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

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

N[rxy]

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

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareCylindricalRadius"]

N[%]

Integrate over Polyhedron

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

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

Divergence theorem

(rxy=MeanSquareCylindricalRadius[p,Debug->False]//FullSimplify)//Timing

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

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

Integrate

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

Divergence theorem

(rxyz=MeanSphericalRadius[p,Debug->True])//Timing

N[rxyz]

ResourceFunction["LogSimplify"][rxyz]//FullSimplify

CAD

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

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

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

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

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

N[%]

Integrate

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

Divergence theorem

(rxy2=MeanSquareSphericalRadius[p,Debug->False]//FullSimplify)//Timing

Midsphere

sphere=PolyhedronData[pname,"Midsphere"]

(sphere=Midsphere[p])//Timing

(sphere=Midsphere[p,Method->"PointLineDistance"])//Timing

Graphics3D[{{Opacity[.5],Yellow,p},{Red,sphere}},Boxed->False]

Net

PolyhedronData[pname,"Net"]

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

PolyhedronData[pname,"SurfaceArea"]

%//RootReduce

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"}]

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"]

SurfaceArea

PolyhedronData[pname,"SurfaceArea"]

SurfaceArea[p]//RootReduce

Total[Area/@PolyhedronData[pname,"Polygons"]]//RootReduce

SurfaceArea[PolyhedronData[pname,"Region"]]//FullSimplify

RootReduce[%]

VertexCount

PolyhedronData[pname,"VertexCount"]

VertexSubsetHulls

subsethulls=PolyhedronData[pname,"VertexSubsetHulls"]

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

v=PolyhedronData[pname,"Vertices"];

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

Platonic

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

Volume

PolyhedronData[pname,"Volume"]

Volume[p]//FullSimplify

PolyhedronVolume[p]//FullSimplify

Volume[PolyhedronData[pname,"Region"]]//FullSimplify

{"Antiprism", 6}

Initialization

<<MathWorld`Polyhedra`

p=PolyhedronData[pname={"Antiprism",6},"Polyhedron"]

vol=PolyhedronData[pname,"Volume"]

Centroid

PolyhedronData[pname,"Centroid"]

Graphics3D[{AbsolutePointSize[10],
Point[{0,0,0}],{Blue,Point[PolyhedronData[pname,"Centroid"]]},Opacity[.2],PolyhedronData[pname,"GraphicsComplex"]}]

RegionCentroid[p]//FullSimplify

PolyhedronCentroid[p]//FullSimplify

Circumsphere

sphere=PolyhedronData[pname,"Circumsphere"]

sphere=Circumsphere[p]//FullSimplify

(sphere=MyCircumsphere[p])//Timing

Graphics3D[{{Opacity[.2],Yellow,sphere},p},Boxed->False]

Classes

PolyhedronData[pname,"Classes"]

Compound

PolyhedronData[pname,"Compound"]

Convex

PolyhedronData[pname,"Convex"]

ConvexPolyhedronQ[p]

ConvexHull

PolyhedronData[pname,"ConvexHull"]

convexhull=ConvexHullRegion[PolyhedronData[pname,"Vertices"]]

v=PolyhedronCoordinates[convexhull]

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

Graphics3D[{FaceForm[Green,Red],convexhull,MapIndexed[Text[#2[[1]],#,Background->White]&,v]}]

{Graphics3D[{Red,Opacity[.5],p}],Graphics3D[{Blue,Opacity[.5],PolyhedronData[pname,"ConvexHull"][[1]]}]}

Show[%]

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

DehnInvariant

PolyhedronData[pname,"DehnInvariant"]

DehnInvariant[p,Debug->True]//Timing

ToConwayBasis[%]

DihedralAngles

PolyhedronData[pname,"DihedralAngles"]//Tally

SimplifyNumericallyDistinct[DihedralAngles[p]]//Tally

EdgeCount

PolyhedronData[pname,"EdgeCount"]

EdgeLengths

Tally[PolyhedronEdgeLengths[p]]

PolyhedronData[pname,"EdgeLengths"]

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

lens=SimplifyNumericallyDistinct[PolyhedronEdgeLengths[p]];//Quiet

(distinctlens=Mean/@Split[Sort[lens],Abs[#1-#2]<1.*^-10&])//N//Quiet

v=PolyhedronCoordinates[p];

colors=With[{n=Length[distinctlens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[distinctlens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[p],Boxed->False]//Quiet

FaceCount

PolyhedronData[pname,"FaceCount"]

GeneralizedDiameter

PolyhedronData[pname,"GeneralizedDiameter"]

GeneralizedDiameter[p]//FullSimplify//Quiet

Hull

PolyhedronData[pname,"Hull","Name"]

PolyhedronData[pname,"Hull","Scale"]

PolyhedronData[pname,"Hull"]

Max[Norm/@PolyhedronData[pname,"Hull","Polyhedron"][[1]]]//FullSimplify

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

{Graphics3D[{Opacity[.5],Red,p}],Graphics3D[{Opacity[.5],Blue,PolyhedronData[pname,"Hull"][[1]]}]}

Show[%]

InertiaTensor

PolyhedronData[pname,"InertiaTensor"]

(i=((MomentOfInertia[p,{0,0,0}])/(Volume[p]))//FullSimplify)//Timing

PolyhedronInertiaTensor[p]//Timing

Insphere

PolyhedronData[pname,"Insphere"]

Insphere[p]

sphere=MyInsphere[p]

Graphics3D[{{Opacity[.5],p},{Red,sphere}},Boxed->False]

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

N[%]

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

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

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

N[rxy]

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

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareCylindricalRadius"]

N[%]

Integrate over Polyhedron

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

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

Divergence theorem

(rxy=MeanSquareCylindricalRadius[p,Debug->False]//FullSimplify)//Timing

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

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

Integrate

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

Divergence theorem

(rxyz=MeanSphericalRadius[p,Debug->True])//Timing

N[rxyz]

ResourceFunction["LogSimplify"][rxyz]//FullSimplify

CAD

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

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

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

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

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

N[%]

Integrate

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

Divergence theorem

(rxy2=MeanSquareSphericalRadius[p,Debug->False]//FullSimplify)//Timing

Midsphere

sphere=PolyhedronData[pname,"Midsphere"]

(sphere=Midsphere[p])//Timing

(sphere=Midsphere[p,Method->"PointLineDistance"])//Timing

Graphics3D[{{Opacity[.5],Yellow,p},{Red,sphere}},Boxed->False]

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"}]

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"]

SurfaceArea

PolyhedronData[pname,"SurfaceArea"]

SurfaceArea[p]//RootReduce

Total[Area/@PolyhedronData[pname,"Polygons"]]//RootReduce

SurfaceArea[PolyhedronData[pname,"Region"]]

VertexCount

PolyhedronData[pname,"VertexCount"]

VertexSubsetHulls

subsethulls=PolyhedronData[pname,"VertexSubsetHulls"]

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

v=PolyhedronData[pname,"Vertices"];

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

Platonic

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

Volume

PolyhedronData[pname,"Volume"]

Volume[p]//FullSimplify

PolyhedronVolume[p]//FullSimplify

Volume[PolyhedronData[pname,"Region"]]//FullSimplify

Construction

By pramids

view={-1,-.2,.7};
p1=Show[Graphics3D[{
Antiprism[5]}],DisplayFunction->Identity,ViewPoint->view];
p2=Show[Graphics3D[{
Antiprism[5][[1]],
Cumulate[{Antiprism[5][[1]]},Antiprism[5][[1,1,1,3]]],
Antiprism[5][[2]],
Cumulate[{Antiprism[5][[2]]},Antiprism[5][[2,1,1,3]]]
}],DisplayFunction->Identity,ViewPoint->view];
p=Partition[{1,2,3},2,1,{1,1}];
p3=Show[Graphics3D[{
{Polygon[Append[#[[{1,2}]],{0,0,0}]],
Polygon[Append[#[[{2,3}]],{0,0,0}]],
Polygon[Append[#[[{1,3}]],{0,0,0}]]}&/@
(Drop[Antiprism[5],2]/.Polygon:>Identity),
Drop[Antiprism[5],2]
}],DisplayFunction->Identity,ViewPoint->view];

Show[GraphicsArray[{p3,p2,p1}]]

Rotated by π/12

v=RotationMatrix[π/12,{0,0,1}].#&/@PolyhedronData[{"Antiprism",6},"Vertices"]//FullSimplify

Graphics3D[p=Polyhedron[v,PolyhedronData[{"Antiprism",6},"FaceIndices"]]]

<<MathWorld`PolyhedronOperations`

PolyhedronInequalities[p,{#1,#2,#3}]//FullSimplify