Elongated Square Cupola

Author

Eric W. Weisstein
September 9, 2023

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

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

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

Solid

PolyhedronData["ElongatedSquareCupola","Orientations"]

PolyhedronData["ElongatedSquareCupola"]

Net

PolyhedronData["ElongatedSquareCupola","Net"]

PolyhedronData["ElongatedSquareCupola","Net","Colored"]

NetPrintout[PolyhedronData["ElongatedSquareCupola","Polyhedron"],"SmallTriakisOctahedron.pdf"]

Properties

Initialization

<<MathWorld`Polyhedra`

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

vol=PolyhedronData[pname,"Volume"]

Centroid

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

PolyhedronData[pname,"Centroid"]

RegionCentroid[p]//FullSimplify

PolyhedronCentroid[p]//FullSimplify

Circumsphere

PolyhedronData[pname,"Circumsphere"]

Circumsphere[p]//FullSimplify

sphere=MyCircumsphere[p]

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

Convex

PolyhedronData[pname,"Convex"]

ConvexPolyhedronQ[p]

DihedralAngles

PolyhedronData[pname,"DihedralAngles"]//Tally

DihedralAngles[p]//FullSimplify//Tally

EdgeLengths

PolyhedronData[pname,"EdgeLengths"]

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

Faces

GeneralizedDiameter

PolyhedronData[pname,"GeneralizedDiameter"]

GeneralizedDiameter[p]//FullSimplify//Quiet

InertiaTensor

PolyhedronData[pname,"InertiaTensor"]

((MomentOfInertia[p,{0,0,0}])/(Volume[p]))//RootReduce//Timing

PolyhedronInertiaTensor[p]//Timing

Insphere

PolyhedronData[pname,"Insphere"]

Insphere[p]

sphere=MyInsphere[p]

MeanCylindricalRadius

PolyhedronData[pname,"MeanCylindricalRadius"]

Integrate over Polyhedron [unevaluated]

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

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

CAD [closed form but too complicated to simplify]

mtrott 2023-09-09: It seems to me that a x-y-z-CAD is not optimal for these solids because of their geometry.  Make 'nice' polyhedral cones/wedges from the triangular and square faces to either {0,0,0} or {0,0,-1}.
There will be just a few few of them (around 3, depending on how you cut). Each of these is a pretty simple object and Integrate[Sqrt[x^2 + y^2]...] will probably give a much simpler result.

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

((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

N[rxy,20]

CAD over  1/8

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

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

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

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

rxysimp1=ResourceFunction["LogSimplify"][rxy]

Simplify`SimplifyCount[rxysimp1]

rxysimp2=rxysimp1//RootReduce

N[rxysimp2,20]

Simplify`SimplifyCount[rxysimp2]

rxysimp3=FullSimplify[rxysimp2]

N[rxysimp3,20]

ResourceFunction["LogSimplify"][rxysimp3]

Simplify`SimplifyCount[rxysimp3]

Divergence theorem [unevaluated integral]

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

N[rxy]

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

Integrate over inequalities

{{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,zmin,zmax}])//Timing

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

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

MeanSquareCylindricalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

Integrate over Polyhedron

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

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

N[rxy]

MeanSphericalRadius

PolyhedronData[pname,"MeanSphericalRadius"]

Integrate over Polyhedron

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

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

N[i]

MeanSquareSphericalRadius

PolyhedronData[pname,"MeanSquareSphericalRadius"]

Integrate over Polyhedron

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

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

N[i]

Midsphere

PolyhedronData[pname,"Midsphere"]

Midsphere[p]

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

SurfaceArea

PolyhedronData[pname,"SurfaceArea"]

RootReduce[%]

SurfaceArea[p]//FullSimplify

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

VertexSubsetHulls

PolyhedronData[pname,"VertexSubsetHulls"]

Platonic

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

Volume

PolyhedronData[pname,"Volume"]

Volume[p]//FullSimplify

PolyhedronVolume[p,Method->"GaussLaw"]//FullSimplify

Perspective projections

Manipulate[PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{a,b,c}],{a,-1,1},{b,-1,1},{c,-1,1}]

XXX

PolyhedronProjectionGraph[PolyhedronData["DuererSolid","Polyhedron"],]