Flexicuboctahedron Animation

Flexicuboctahedron Animation
Loading the math board and drawing, please wait…
2020-07-17 00:41
This example demonstrates an animation of a flexicuboctahedron model from the book 'Action Modular Origami'. Key mathematical concepts include geometric transformations and solid geometry. Using GeoGebra commands such as Rotate, Translate, and Mirror, the folding and deformation of the cube are illustrated. Suitable for middle school and above students for geometric construction and solid geometry learning.

GeoGebra Commands & Parameters

  1. Intersect(zAxis, xOyPlane) → A
  2. Point(xAxis) → B
  3. Point(Circle[B, Distance[A, B], Segment[A, B]]) → C
  4. Line(B, C) → q
  5. If(bControl ≟ bConstClock, ang5a, ang5s) → ang5
  6. Rotate(A, ang5, q) → A'_1
  7. If(bControl ≟ bConstClock, ang1a, ang1s) → ang1
  8. Cube(A, B, C) → a, D, faceCDHG, faceEFGH, edgeAD, edgeAB, edgeBC, edgeCD, edgeAE, edgeDH, edgeEH, edgeEF, E, edgeBF, edgeFG, edgeCG, edgeGH, F, G, H, faceABCD, faceADHE, faceABFE, faceBCGF
  9. Line(C, E) → f
  10. Polygon(A, D, H) → poly1, h, a_1, d
  11. Sequence(Rotate[{poly1, faceABCD}, (n * 120°), f], n, 0, 2, 1) → listPoly00
  12. Rotate(A, ang1, edgeBC) → A'
  13. Plane((0, shiftDistance2, 0), (1, shiftDistance2, 0), (0, shiftDistance2, 1)) → yz
  14. OrthogonalLine(A', edgeAE, yz) → g
  15. Intersect(g, edgeAE) → J
  16. If(bControl ≟ bConstClock, ang2a, ang2s) → ang2
  17. Translate(Rotate[listPoly00, ang1, edgeBC], u) → listPoly01
  18. Rotate(B, ang2, edgeCD) → B'
  19. Plane(B, C, G) → c
  20. OrthogonalLine(B', edgeBF, c) → i
  21. Intersect(i, edgeBF) → K
  22. Vector(B', K) → v
  23. Vector(B, K) → w
  24. Translate(Translate[Rotate[listPoly01, ang2, edgeCD], v], w) → listPoly02
  25. If(bControl ≟ bConstClock, ang3a, ang3s) → ang3
  26. If(bControl ≟ bConstClock, ang4a, ang4s) → ang4
  27. Rotate(listPoly02, ang3, edgeFG) → listPoly03
  28. Rotate(B, ang4, edgeCD) → F'_2
  29. Rotate(E, ang3, edgeFG) → L
  30. Line(F, L) → t
  31. Plane(B, A, E) → k
  32. OrthogonalLine(E, t, k) → g_1
  33. OrthogonalLine(A'_1, g_1, k) → s
  34. Intersect(s, g_1) → Q
  35. Vector(A, Q) → v_1
  36. Vector(A'_1, Q) → u_1
  37. Line(B, F) → l
  38. OrthogonalLine(F'_2, l, c) → m
  39. Intersect(l, m) → M
  40. Vector(F'_2, M) → n
  41. Translate(Rotate[listPoly03, ang4, edgeCD], n) → listPoly04
  42. Translate(Translate[Rotate[listPoly04, ang5, q], u_1], v_1) → listPoly05
  43. OrthogonalLine(L, k) → f_1
  44. OrthogonalLine(B, edgeBF, k) → r
  45. Intersect(yAxis, zAxis) → I
  46. Vector(C, B') → e
  47. Translate(F, v) → F'
  48. Translate(F, e) → F'_1
  49. Plane((shiftDistance, 0, 0), (shiftDistance, 1, 0), (shiftDistance, 0, 1)) → xy
  50. Mirror(listPoly05, xy) → listPoly05'
  51. Mirror(listPoly05', k) → listPoly05''
  52. Mirror(listPoly05, k) → listPoly05'_1
  53. Vector(A, B) → p
  54. Translate(B, p) → B'_1
  55. Point(listPoly05'_1) → N
  56. Point(listPoly05'_1) → O
  57. OrthogonalLine(A'_1, r, k) → h_1
  58. Intersect(g_1, edgeAE) → P
  59. If(clock < 3, (-shiftAngle) + 0*°, If[clock ≥ 3 ∧ clock < 4, 180° + shiftAngle, (-shiftAngle) + (180° * (1 - smoothramp(clock - 5)))]) → ang6a
  60. If(bControl ≟ bConstClock, ang6a, ang6s) → ang6
  61. Intersect(h_1, r) → R
  62. Translate(Rotate[G, ang1, edgeBC], u) → G_1
  63. Translate(Translate[Rotate[G_1, ang2, edgeCD], v], w) → G_2
  64. Rotate(G_2, ang3, edgeFG) → G_3
  65. Translate(Rotate[G_3, ang4, edgeCD], n) → G_4
  66. Translate(Translate[Rotate[G_4, ang5, q], u_1], v_1) → G_5
  67. Translate(Rotate[H, ang1, edgeBC], u) → H_1
  68. Translate(Translate[Rotate[H_1, ang2, edgeCD], v], w) → H_2
  69. Rotate(H_2, ang3, edgeFG) → H_3
  70. Translate(Rotate[H_3, ang4, edgeCD], n) → H_4
  71. Translate(Translate[Rotate[H_4, ang5, q], u_1], v_1) → H_5
  72. Line(G_5, H_5) → i_1
  73. Translate(Rotate[D, ang1, edgeBC], u) → D_1
  74. Translate(Translate[Rotate[D_1, ang2, edgeCD], v], w) → D_2
  75. Rotate(D_2, ang3, edgeFG) → D_3
  76. Translate(Rotate[D_3, ang4, edgeCD], n) → D_4
  77. Translate(Translate[Rotate[D_4, ang5, q], u_1], v_1) → D_5
  78. Translate(Rotate[C, ang1, edgeBC], u) → C_1
  79. Translate(Translate[Rotate[C_1, ang2, edgeCD], v], w) → C_2
  80. Rotate(C_2, ang3, edgeFG) → C_3
  81. Translate(Rotate[C_3, ang4, edgeCD], n) → C_4
  82. Translate(Translate[Rotate[C_4, ang5, q], u_1], v_1) → C_5
  83. Plane(C_5, D_5, G_5) → o
  84. Rotate(Mirror[listPoly05, o], (-ang6_1), i_1) → listPoly06
  85. Mirror(listPoly06, yz) → listPoly06'
  86. Mirror(listPoly06, xy) → listPoly06'_1
  87. Mirror(listPoly06', xy) → listPoly06''
  88. Mirror(listPoly03, k) → listPoly03'
  89. Mirror(listPoly03, xy) → listPoly03'_1
  90. Mirror(listPoly03'_1, k) → listPoly03'_2
  91. Rotate(listPoly02, (-(90°)), edgeEH) → listPoly12
  92. Mirror(listPoly12, yz) → listPoly12'
  93. Mirror(listPoly12, xy) → listPoly12'_1
  94. Mirror(listPoly12', xy) → listPoly12''
  95. Point(xAxis) → T
  96. Line(S, T) → j_1
  97. Line(U, V) → k_1
  98. If(clock ≥ 2 ∧ clock < 3, true, false) → bSet1

AI Drawing Prompt Reference

Create an animated flexicuboctahedron model. Start with a 3D coordinate system, place points on axes to define a cube with labeled vertices, edges, and faces. Rotate one face around an edge, then sequentially rotate adjacent faces around their edges, using translations and reflections to simulate folding. The final shape is a polyhedron of triangular and quadrilateral faces that deforms through rotation and translation.
The prompt above was compiled from the original drawing commands and is for reference only.