Pentakis Dodecahedron and Its Dual Truncated Icosahedron: Edge/Face Coloring via

Pentakis Dodecahedron and Its Dual Truncated Icosahedron: Edge/Face Coloring via
Loading the math board and drawing, please wait…
2020-12-31 04:37
This example visualizes how a Pentakis Dodecahedron (V=32) and its dual image— the Truncated Icosahedron (V=60)—can be rendered with consistent coloring of edges and faces. The goal is to reveal the structural correspondence and symmetry between the primal solid and its dual when embedded in a spherical geometric setup. Key mathematics includes solid duality, convex regular polyhedra geometry, spherical reference constructions, and rule-based classification for coloring. Construction-wise, the model builds a reference Sphere and uses PointIn to test membership/conditions for points. It creates supporting geometry with Circle and Segment, and uses Angle measurements for classification cues. The example then applies If and KeepIf to filter and group elements that satisfy criteria, while Sort and First select ordered candidates. Iterative creation is organized with Sequence, and user-facing labeling is done with Textfield, TableText, and UnicodeToLetter, producing informative annotations (e.g., mapping/parameter readouts such as volume-related values). Suitable for high school advanced geometry through undergraduate visualization projects, and ideal for teaching dual polyhedra, symmetry, and geometry-driven coloring algorithms in GeoGebra.

GeoGebra Commands & Parameters

  1. Sequence(((zoom * Element[Element[A00d, i], 1]), (zoom * Element[Element[A00d, i], 2]), (zoom * Element[Element[A00d, i], 3])), i, 1, Length[A00d]) → A0d
  2. Sequence(((zoom * Element[Element[A00, i], 1]), (zoom * Element[Element[A00, i], 2]), (zoom * Element[Element[A00, i], 3])), i, 1, Length[A00]) → A0
  3. Sphere(O, r_o) → sp02d
  4. Textfield(R1sphere) → InputBox5
  5. Sphere(O, R1sphere) → sp01
  6. Textfield(r_o) → InputBox6
  7. Textfield(jarc) → InputBox8
  8. Textfield(jarc_d) → InputBox9
  9. Textfield(f_{Poly}) → InputBox11
  10. Textfield(k) → InputBox15
  11. Textfield(k_d) → InputBox14
  12. TableText({Append["i", 1…Length[mm5a]], Append["\fgcolor{orange}{n}", mm5a], Append["\fgcolor{orange}{N}", mm7a], Append["\fgcolor{#007FFF}{n/dual}", mm5ad], Append["\fgcolor{#007FFF}{N}", mm7ad]}, "hr") → text24
  13. Textfield(iseg) → InputBox17
  14. Textfield(f_{Poly}d) → InputBox18
  15. Textfield(isegd) → InputBox19
  16. UnicodeToLetter(34) → u34
  17. TableText({Append["i", 1…Max[Length[Segn], Length[Segnd]]], Append["\fgcolor{orange}{s_i}", Segn / Segments_o1], Append["\fgcolor{orange}{N}", lLength], Append["\fgcolor{#007FFF}{s_id}", Segnd / Segments_o1d], Append["\fgcolor{#007FFF}{N}", lLengthd]}, "hr") → text23
  18. Textfield(n_3) → InputBox20
  19. If(n_3 ≟ 0, "", Text["" + n_3]) → txt_3
  20. Textfield(nd_3) → InputBox21
  21. If(nd_3 ≟ 0, "", Text["" + nd_3]) → txtd_3
  22. Circle(A_{farbe}, rfabe) → farbekreis
  23. PointIn(farbekreis) → A
  24. Angle(A) → α
  25. Segment(C, D) → h
  26. Sort(Sequence[Segment[Element[A0, Element[Element[nom, i], 1]], Element[A0, Element[Element[nom, i], 2]]], i, 1, Length[nom]]) → Segments
  27. First(Segments, i_s) → Segments_o
  28. Sort(Sequence[Segment[Element[A0d, Element[Element[nomd, i], 1]], Element[A0d, Element[Element[nomd, i], 2]]], i, 1, Length[nomd]]) → Segmentsd
  29. First(Segmentsd, id_s) → Segmentsd_o
  30. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segn, 1], Segments) → la1
  31. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segn, 2], Segments) → la2
  32. Sequence(Polygon[Element[A0, Element[Element[mm1, f], 1]], Element[A0, Element[Element[mm1, f], 2]], Element[A0, Element[Element[mm1, f], 3]]], f, 1, Length[mm1]) → poly_{3}
  33. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[poly_{3}S, 1], poly_{3}) → poly_{3}1
  34. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segnd, 1], Segmentsd) → lad1
  35. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segnd, 2], Segmentsd) → lad2
  36. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segnd, 3], Segmentsd) → lad3
  37. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segnd, 4], Segmentsd) → lad4
  38. KeepIf(round((x * 10^(k))) / 10^(k) ≟ Element[Segnd, 5], Segmentsd) → lad5
  39. Sequence(Polygon[Sequence[A0d(mm6d(1, f, k)), k, 1, Length[mm6d(1, 1)]]], f, 1, Length[mm6d(1)]) → polyd_{5}
  40. Sequence(Polygon[Sequence[A0d(mm6d(2, f, k)), k, 1, Length[mm6d(2, 1)]]], f, 1, Length[mm6d(2)]) → polyd_{6}

AI Drawing Prompt Reference

Draw a spherical reference system containing a pentakis dodecahedron (32 vertices) and its dual truncated icosahedron (60 vertices), nested concentrically. Color the edges and faces of the pentakis dodecahedron in orange, and those of the dual in blue, to reveal their duality. Use auxiliary circles and points on the sphere for positioning, connect vertices with segments to form edges, and fill faces with polygons. Include text input boxes and tables showing edge lengths, face counts, and other parameters, with color-coded edge categories. Emphasize symmetry and structural correspondence.
The prompt above was compiled from the original drawing commands and is for reference only.