# Geodesate extract angles and edges length of a polyhedron

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.

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[PolyhedronOperationsGeodesate[
PolyhedronData["GreatRhombicosidodecahedron"] , 2]],
SphericalRegion -> True, Boxed -> False, ViewAngle -> Pi/8
]


While a regular polyhedron has edges lentgh constant:

PolyhedronData["GreatRhombicosidodecahedron"]


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:

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

Example:

PolyhedronData[First[PolyhedronOperationsGeodesate[PolyhedronData[
"GreatRhombicosidodecahedron"] , 2], "Net"]]


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.

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


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

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

• 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"]] ` Commented Sep 22, 2019 at 9:50