Petrie–Coxeter Honeycomb Origami Animation

Petrie–Coxeter Honeycomb Origami Animation
Loading the math board and drawing, please wait…
2020-07-17 00:40
In collections Action Modular Origami
This example demonstrates a 3D animated model of a Petrie–Coxeter honeycomb folded from paper, illustrating the periodic arrangement of regular polyhedra in space. The core mathematical concepts involve solid geometry, polyhedral symmetry, translation and rotation, and spatial tessellation. The construction uses GeoGebra commands such as Point, Circle, Line, OrthogonalLine, Intersect, Rotate, Polygon, Vector, Translate, Plane, Sphere, IntersectConic, OrthogonalPlane, and Angle to build the geometric framework, with sliders controlling the animation. It is suitable for high school and above, or for math enthusiasts interested in polyhedral tilings, spatial symmetry, and parametric animation construction.

GeoGebra Commands & Parameters

  1. Point(yAxis) → OOO
  2. Circle(OOO, Z) → c_2
  3. Line(OOO, Z) → i_2
  4. OrthogonalLine(OOO, i_2) → j_2
  5. Intersect(c_2, j_2, 2) → B_1
  6. Rotate(B_1, 120°, OOO) → C_1
  7. Rotate(B_1, (-(120°)), OOO) → D_1
  8. Polygon(C_1, D_1, B_1) → poly10, b_2, c_3, d_2
  9. PointIn(poly10) → E_1
  10. OrthogonalLine(E_1, d_2) → m_2
  11. Intersect(m_2, d_2) → I_1
  12. Segment(E_1, I_1) → p_2
  13. Intersect(b_2, j_2) → J_1
  14. Segment(B_1, J_1) → r_2
  15. OrthogonalLine(E_1, b_2) → k_2
  16. Intersect(k_2, poly10) → F_1, G_1
  17. Segment(E_1, F_1) → n_2
  18. OrthogonalLine(E_1, c_3) → l_2
  19. Intersect(l_2, c_3) → H_1
  20. Segment(E_1, H_1) → q_2
  21. If(control ≟ constSlider, β_1, If[control ≟ constTriad, β_2, β_3]) → β
  22. If(control ≟ constSlider, α_1, If[control ≟ constTriad, α_2, α_3]) → α
  23. Rotate(B, α, A) → B'
  24. Vector(A, B') → v
  25. Vector(A, B) → u
  26. Translate(B', u) → B''
  27. Vector(A, B'') → w_1
  28. Translate(A, w_1) → A'
  29. Polygon(A, B, B'', B') → poly1, a_1, b_1, b'', b'
  30. OrthogonalLine(B', poly1) → g
  31. Point(g) → D
  32. Plane(A, B', D) → d
  33. Polygon(B', A, 4, d) → poly2, h, i, j, k, G, H
  34. Translate(G, u) → G'
  35. Translate(G', v) → G''_2
  36. Plane(G, G', A) → e
  37. Polygon(A, G, 4, e) → poly3, l, m, n, p, I, J
  38. Line(J, A') → q
  39. Rotate(G', β, q) → G''
  40. Vector(J, G'') → w
  41. Translate(A', w) → A''
  42. Translate(A'', u) → A'''
  43. Line(A''', A'') → m_1
  44. Translate(G', w) → G''_1
  45. Translate(G'', u) → G'''
  46. Plane(G'', G''', G''_1) → o
  47. Polygon(G'', G''', 4, o) → poly5, s, t, f_1, g_1, K, L
  48. Translate(L, v) → L'
  49. Vector(L', G''_1) → v_2
  50. If(control ≟ constSlider, γ_1, If[control ≟ constTriad, γ_2, γ_3]) → γ
  51. Rotate(L', γ, m_1) → L''_1
  52. Vector(G'', L''_1) → v_1
  53. Translate(K, d_1) → K'
  54. Translate(G''_1, d_1) → Q
  55. Plane(L', Q, K') → n_1
  56. Polygon(L', Q, 4, n_1) → poly8, p_1, q_1, r_1, s_1, S, T
  57. Vector(T, L') → u_2
  58. Rotate(L', (-β), r_1) → L''_2
  59. Translate(L''_2, u_2) → K_1
  60. Plane(G''_2, L', K_1) → o_2
  61. Polygon(G''_2, L', 4, o_2) → poly13, h_3, i_3, j_3, k_3, N_1, O_1
  62. Translate(poly13, v_2) → poly6
  63. Translate(N_1, v_2) → R_1
  64. Line(G''_1, R_1) → t_1
  65. Translate(poly2, u) → poly2'
  66. Rotate(poly2', β, q) → poly2''
  67. Vector(A, G) → r
  68. Plane(R_1, N_1, O_1) → w_2
  69. Polygon(R_1, N_1, 4, w_2) → poly15, m_3, n_3, p_3, q_3, P_1, Q_1
  70. Vector(Q_1, G') → u_3
  71. Translate(poly13, v_2) → poly13'
  72. Line(G', G''_1) → h_1
  73. Circle(A, B, xOyPlane) → c
  74. Point(zAxis) → C
  75. Plane(A, B'', C) → a
  76. Intersect(yAxis, zAxis) → F
  77. Plane(A, B, C) → b
  78. OrthogonalLine(A, b) → f
  79. Intersect(g, c, 1) → E
  80. Translate(poly3, v) → poly3'
  81. Translate(poly2', w) → poly2''_1
  82. Translate(poly2'', r) → poly2'''
  83. Translate(poly2''_1, u) → poly4
  84. Translate(poly5, v) → poly5'
  85. Translate(poly6, v) → poly6'
  86. Polygon(R_1, N_1, 4, w_2) → poly7, i_1, j_1, k_1, l_1, N, O
  87. Translate(poly2'', u_3) → poly2'''_1
  88. Vector(Q_1, B) → u_1
  89. Translate(poly6, u_1) → poly6'_1
  90. Translate(poly6', u_1) → poly6''
  91. Translate({poly2, poly2', poly2''_1, poly4, poly6, poly6', poly6'', poly6'_1}, Vector[A, A]) → listPoly1
  92. Translate({poly2'', poly2''', poly2'''_1, poly3, poly3', poly5, poly5', poly7}, Vector[A, A]) → listPoly2
  93. Point(c) → P
  94. Rotate(poly5', γ, m_1) → poly5''
  95. Translate(poly8, Vector[(-r)]) → poly8'
  96. Intersect(c_2, i_2, 2) → A_1
  97. Rotate(poly8, (-β), r_1) → poly8'_1
  98. Translate(poly8'_1, u_2) → poly11
  99. Line(G', G''_1) → l_3
  100. Translate(poly2'', u_3) → poly2'''_2
  101. Translate({poly2, poly2', poly2''_1, poly4}, Vector[A, A]) → listPoly311_1
  102. Translate({poly2'', poly2''', poly3, poly3', poly5, poly5'}, Vector[A, A]) → listPoly311_2
  103. Translate({poly2, poly2', poly2''_1, poly4, poly13, poly6, poly6'', poly6'_1}, Vector[A, A]) → listPoly331_1
  104. Translate({poly2'', poly2''', poly2'''_1, poly3, poly3', poly5, poly5', poly7}, Vector[A, A]) → listPoly331_2
  105. Point(listPoly331_1) → M
  106. Rotate(poly6, δ, t_1) → poly6'_2
  107. Line(G''_1, K) → c_1
  108. Rotate(poly5, ε, c_1) → poly5'_1
  109. Rotate(G''', ε, c_1) → R
  110. Rotate(Q_1, δ, t_1) → U
  111. Rotate(G', δ, t_1) → G''_3
  112. Rotate(G'', ε, c_1) → G'''_1
  113. Sphere(R_1, G') → e_1
  114. Sphere(K, G'') → o_1
  115. IntersectConic(e_1, o_1) → e_2
  116. OrthogonalLine(G''_1, t_1, space) → f_2
  117. OrthogonalPlane(G''_1, t_1) → a_2
  118. Intersect(a_2, e_2) → V, L_1
  119. Angle(G', G''_1, L_1) → ζ
  120. Rotate(poly6, ζ, t_1) → poly6'_3
  121. Plane(G''_1, G'', L_1) → g_2
  122. Angle(L_1, L, G'') → η
  123. Line(L, K) → h_2
  124. Rotate(poly5, (-η), h_2) → poly5'_2
  125. Vector(L', L_1) → s_2
  126. Translate(listPoly1, s_2) → listPoly1'
  127. Translate(listPoly2, s_2) → listPoly2'
  128. Translate(poly5'_2, Vector[(-r)]) → poly9
  129. Translate(poly6'_3, Vector[(-w)]) → poly12
  130. Translate(poly5'_2, Vector[(-w)]) → poly16
  131. Translate(poly16, u_2) → poly16'
  132. Translate(poly16', Vector[(-r)]) → poly16''
  133. Translate(Translate[poly6'_3, u_3], Vector[(-r)]) → poly17
  134. Translate(Translate[poly12, u_3], Vector[(-r)]) → poly18
  135. Translate(poly6'_3, Vector[(-u_2)]) → poly19
  136. Translate(poly17, Vector[(-u_2)]) → poly17'
  137. Translate(poly5'_2, Vector[(-u_3)]) → poly20
  138. Translate(poly16', Vector[(-u_3)]) → poly16''_1
  139. Translate(poly12, w) → poly12'
  140. Translate(poly9, u_3) → poly9'
  141. Translate(poly16'', u_3) → poly16'''
  142. Translate(poly12, u_2) → poly12'_1
  143. Translate(poly18, u_2) → poly18'

AI Drawing Prompt Reference

Create a 3D animated origami model of a Petrie–Coxeter honeycomb. Start with a point on the vertical axis as center, draw a circle and a vertical line through it, then a perpendicular line intersecting the circle at a point. Rotate this point by 120 and -120 degrees around the center to get two more points, forming an equilateral triangle. Pick a point inside the triangle, drop perpendiculars to each side, and mark the feet. Then construct a parallelogram from four vertices, and use it as a base to generate adjacent parallelograms via translations and rotations, creating a periodic spatial tiling. Use sliders to control rotation angles and modes, making the whole structure fold and unfold dynamically, illustrating symmetric polyhedral tessellation.
The prompt above was compiled from the original drawing commands and is for reference only.