2

To mirror the standard truncated icosahedron, a dodecahedron of side $AB=1$ is truncated to have 20 triangles and 12 decagons roughly as in the hand sketch:

enter image description here

Condition of same length of regular spherical polygon side lengths ( using Law of Cosines/ Sines ) gives arc lengths:

$$ AP= 0.274396,PQ=0.473744, QB=AP ; \;$$

Can you please help to show the triangles,decagons and edges on the circumscribing ball with different colors? Thanks in advance.

Narasimham
  • 3,160
  • 13
  • 26

1 Answers1

1

You can mash up some of the answers from the football question $3D$ graphic of soccer ball

Credit to J. M.'s technical difficulties♦ and MarcoB as this draws on those answers:

arc[center_?VectorQ, {start_?VectorQ, end_?VectorQ}] := 
 Module[{ang, co, r}, ang = VectorAngle[start - center, end - center];
  co = Cos[ang/2]; r = EuclideanDistance[center, start];
  BSplineCurve[{start, 
    center + r/co Normalize[(start + end)/2 - center], end}, 
   SplineDegree -> 2, SplineKnots -> {0, 0, 0, 1, 1, 1}, 
   SplineWeights -> {1, co, 1}]]

curvedEdges[polyh_] := 
  ReplaceAll[MeshPrimitives[polyh, 1], 
   Line[coords_] :> arc[{0, 0, 0}, coords]];

draw[poly_] := 
 Block[{r = Norm[MeshPrimitives[poly, 0][[1, 1]]]}, 
  Graphics3D[{EdgeForm[], 
    MeshPrimitives[poly, 2] /. 
     p : Polygon[l_] :> {If[Length[l] > 3, Orange, Yellow],
       GraphicsComplex[r (Normalize /@ MeshCoordinates[#]), 
          MeshCells[#, 2]] &@
        DiscretizeRegion[p, MaxCellMeasure -> {"Area" -> 0.0025}]},
    curvedEdges[poly]
    }, Boxed -> False, Lighting -> "Neutral"]]

draw[TruncatedPolyhedron[Dodecahedron[]]]

truncated dodecahedron on a sphere

flinty
  • 25,147
  • 2
  • 20
  • 86
  • Triangle size in this image smaller than required. where in the code should it be changed? Error .MeshPrimitives is not a Graphics3D primitive or directive ; .I have v 11.0 – Narasimham Jun 12 '20 at 14:27
  • I can't help you with v11 I'm afraid but it's really simple: just use this answer https://mathematica.stackexchange.com/a/118617/72682 and replace "TruncatedIcosahedron" with "TruncatedDodecahedron". – flinty Jun 12 '20 at 14:32
  • It works for all Polyhedra. In the above image triangles are smaller. Where in the code is adjustability written in? – Narasimham Jun 12 '20 at 17:14
  • It's not. In 12.1 it's possible to adjust the side ratio with: TruncatedPolyhedron[Dodecahedron[], 0.3]. In v11 you'll need to use the PolyhedronOperations package: << PolyhedronOperations`; Truncate[PolyhedronData["Dodecahedron"], .3] – flinty Jun 12 '20 at 17:21