2
$\begingroup$

I'm using Mathematica 11, don't have access to new functions in Geodesate.

Edited to clarify my question

What I aim to do, it is to extract the angles and length of edges of a polyhedron (also in the case of geodesic polyhedrons, where edges are not regular).

Example:

PolyhedronData["Icosidodecahedron", "Net"] 

I want to extract the angles and length of edges of the "planar" map.

enter image description here

How could I manipulate this object?

As second step, I want to extract the same properties for a geodesic polyhedron [GP]:

https://en.wikipedia.org/wiki/Geodesic_polyhedron 

So for example, consider this GP:

Graphics3D[ First[PolyhedronOperations`Geodesate[ PolyhedronData["GreatRhombicosidodecahedron"] , 2]], SphericalRegion -> True, Boxed -> False, ViewAngle -> Pi/8 ] 

While a regular polyhedron has edges lentgh constant:

PolyhedronData["GreatRhombicosidodecahedron"] 

enter image description here

a geodesic polyhedron obtained from regular polygons may not have regular edges - better said, it can have more than one class of regular edges, see in the pictures a class of edges common to equilateral triangles and squares, a class of isoscele triangles within the squares and another class within of isoscele within the octagon:

enter image description here

How could I use the GraphicsComplex object to extract the "Net" of it?

Example:

PolyhedronData[First[PolyhedronOperations`Geodesate[PolyhedronData[ "GreatRhombicosidodecahedron"] , 2], "Net"]] 

enter image description here

I am looking for a way to get the "Net" of a geodesic polyhedron, and to extract the length of its edges and angle between them.


$\endgroup$

1 Answer 1

3
$\begingroup$

By construction all polygons are regular. So, edge lengths are all 1:

pnet = PolyhedronData["Icosidodecahedron", "Net"]; MinMax @ Cases[Normal[pnet], p_Polygon :> (N[RegionMeasure[Line @ #]] & /@ Partition[p[[1]], 2, 1, 1]), All] 

{1., 1.}

Angles can be obtained using PolygonAngle:

DeleteDuplicates @ Cases[Normal[pnet], p_Polygon :> N @ PolygonAngle[p], All] 

{{1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}, {1.88496, 1.88496, 1.88496, 1.88496, 1.88496}, {1.0472, 1.0472, 1.0472}}

You can do something similar working with "NetGraph" (instead of "Net"):

ng = PolyhedronData["Icosidodecahedron", "NetGraph"]; 

enter image description here

Get neighbors, edge lengths, and angles for each vertex:

f = {#, AdjacencyList[ng, #], ## & @@ Transpose[({ArcLength[Line@N@#], VectorAngle @@ N[#]} &@ PropertyValue[{ng, #}, VertexCoordinates]) & /@ Thread[{#, AdjacencyList[ng, #]}]]} &; vertex = 5; f @ vertex 

{5, {1, 3, 10}, {1., 1., 1.}, {0.407294, 0.00766817, 0.327627}}

$\endgroup$
1
  • $\begingroup$ hi @kglr thank you for dedicating time to the question: I updated it for clarity. Your answer is valid for regular polyhedron, but I want to calculate the length of edges also for geodesic ones. I wish I could extract the NetGraph for geodesic polyhedrons, I cannot having a PolyhedronData error. As example, in my question, I tried PolyhedronData[First[PolyhedronOperationsGeodesate[PolyhedronData[ "GreatRhombicosidodecahedron"] , 2], "Net"]] ` $\endgroup$ Commented Sep 22, 2019 at 9:50

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.