3D Paper Model Animation

3D Paper Model Animation
Loading the math board and drawing, please wait…
2020-07-17 00:34
In collections Action Modular Origami
This example demonstrates an animation of a model folded from paper as described in the book 'Action Modular Origami' by Tarquin. It involves core mathematical concepts such as solid geometry, vector operations, and geometric transformations. The construction utilizes GeoGebra commands and objects like OrthogonalLine, Dilate, Intersect, Line, Vector, Translate, Polygon, Midpoint, Rotate, Mirror, and Sequence. Suitable for high school and above students studying solid geometry, geometric constructions, and spatial reasoning.

GeoGebra Commands & Parameters

  1. OrthogonalLine(OOO, xOyPlane) → s
  2. Dilate(C, ribbonCut, B) → C'_1
  3. Intersect(xAxis, yAxis) → A
  4. Line(B, A) → q
  5. Vector(A, B) → v
  6. Translate(A, u) → D
  7. Polygon(A, D, nSides, xOyPlane) → poly2, f, F, G, H, I, J, g, h, i, j, k, l, m, E
  8. Midpoint(D, H) → OO
  9. Vector(OO, OOO) → w
  10. Rotate(B, rot, OO) → B'
  11. Polygon(A, B, C) → poly1, c, a, b
  12. OrthogonalLine(K, a, xOyPlane) → n
  13. Intersect(n, b) → L
  14. Rotate(L, 180°, A) → L'
  15. Rotate(L', rot, OO) → L''
  16. OrthogonalLine(L', n, xOyPlane) → p
  17. Intersect(p, q) → M
  18. Rotate(M, rot, OO) → M'
  19. Mirror(K, c) → K'
  20. Rotate(K', rot, OO) → K''
  21. Polygon(K'', L'', M', B') → base', k'', l'', m', b'
  22. Polygon(K', L', M, B) → base, k', l', m_1, b_1
  23. Intersect(k', k'') → P
  24. Vector(A, A'') → e
  25. Translate(B, e_2) → B'_2
  26. Translate(B, e_0) → B'_3
  27. Translate(K', e_0) → K''_2
  28. Translate(K', e_2) → K''_1
  29. Translate(C'_1, e_0) → C_1
  30. Translate(C'_1, e_2) → B_1
  31. Dilate(C, topCut, K) → C'
  32. Translate(C', e_0) → C''_1
  33. Translate(C', e_2) → C''
  34. Sequence(Polygon[Rotate[A, (n * rot), OO], Rotate[B, (n * rot), OO], Rotate[C, (n * rot), OO]], n, 0, nSides, 1) → list1
  35. Polygon(A, L, K, B) → ribbon, a_1, l_1, k_1, b_2
  36. OrthogonalLine(N, a, xOyPlane) → r
  37. Intersect(r, b) → O
  38. Polygon(K, L, O, N) → top, k_2, l_2, o, n_1
  39. Sequence(Polygon[Rotate[K', (n * rot), OO], Rotate[L', (n * rot), OO], Rotate[M, (n * rot), OO], Rotate[B, (n * rot), OO]], n, 0, nSides, 1) → list2
  40. Sequence(Polygon[Rotate[A, (n * rot), OO], Rotate[L, (n * rot), OO], Rotate[K, (n * rot), OO], Rotate[B, (n * rot), OO]], n, 0, nSides, 1) → list3
  41. Rotate(A, rot, OO) → A'
  42. Rotate(L, rot, OO) → L'_1
  43. Rotate(K, rot, OO) → K'_1
  44. Rotate(B, rot, OO) → B'_1
  45. Polygon(A', L'_1, K'_1, B'_1) → ribbon', a', l'_1, k'_1, b'_1
  46. Rotate(K, rot, OO) → K'_2
  47. Rotate(L, rot, OO) → L'_2
  48. Rotate(O, rot, OO) → O'
  49. Rotate(N, rot, OO) → N'
  50. Polygon(K'_2, L'_2, O', N') → top', k'_2, l'_2, o', n'
  51. Polygon(B, D, M', L'', A, L, K) → ribbonCut_1, b_3, d, m'_1, l''_1, a_2, l_3, k_3
  52. Polygon(P, L', M, L'') → baseCut, p_1, l'_3, m_2, l''_2
  53. Intersect(b, a_1) → Q
  54. Intersect(m', d) → R
  55. Intersect(b, a_1) → S
  56. Intersect(m', d) → T
  57. Intersect(m', d) → U
  58. Intersect(b, l_2) → V
  59. Intersect(m', d) → W
  60. Intersect(b, l_2) → Z
  61. Intersect(b, m') → A_1
  62. Polygon(B, D, A_1, L, C'_1) → ribbonLong, b_4, d_1, a_3, l_4, c'_1
  63. Translate(Sequence[Polygon[Rotate[B, (n * rot), OO], Rotate[D, (n * rot), OO], Rotate[A_1, (n * rot), OO], Rotate[L, (n * rot), OO], Rotate[C'_1, (n * rot), OO]], n, 0, nSides, 1], w) → listRibbonLong
  64. Rotate(Translate[Sequence[Polygon[Rotate[B, (n * rot), OO], Rotate[D, (n * rot), OO], Rotate[M', (n * rot), OO], Rotate[L'', (n * rot), OO], Rotate[A, (n * rot), OO], Rotate[L, (n * rot), OO], Rotate[K, (n * rot), OO]], n, 0, nSides, 2], w], α, s) → listRibbonCut
  65. Rotate(Translate[Sequence[Polygon[Rotate[K, (n * rot), OO], Rotate[L, (n * rot), OO], Rotate[O, (n * rot), OO], Rotate[N, (n * rot), OO]], n, 0, nSides, 2], w], α, s) → listTop
  66. Rotate(Translate[Translate[Sequence[Polygon[Rotate[P, (n * rot), OO], Rotate[L', (n * rot), OO], Rotate[M, (n * rot), OO], Rotate[L'', (n * rot), OO]], n, 1, nSides, 2], w], Vector[(-3 * e_0)]], α, s) → listBaseCut2
  67. Rotate(Translate[Translate[Sequence[Polygon[Rotate[B, (n * rot), OO], Rotate[D, (n * rot), OO], Rotate[M', (n * rot), OO], Rotate[L'', (n * rot), OO], Rotate[A, (n * rot), OO], Rotate[L, (n * rot), OO], Rotate[K, (n * rot), OO]], n, 1, nSides, 2], Vector[(-e_0)]], w], α, s) → listRibbonCut2
  68. Rotate(Translate[Sequence[Polygon[Rotate[K, (n * rot), OO], Rotate[L, (n * rot), OO], Rotate[O, (n * rot), OO], Rotate[N, (n * rot), OO]], n, 1, nSides, 2], w], α, s) → listTop2
  69. Translate(listTop2, e) → listTop2'
  70. Translate(listTop, e) → listTop'
  71. Polygon(C''_1, C_1, B_1, C'') → SideTop, t, f_1, g_1, h_1
  72. Polygon(B_1, B'_2, B'_3, C_1) → SideRibbon, i_1, j_1, q_1, r_1
  73. Translate(O, e_2) → O'_1
  74. Polygon(O, C', C'', O'_1) → SideCut, o_1, c'_3, c''_1, o'_1
  75. Polygon(B'_2, K''_1, K''_2, B'_3) → SideBase, s_1, t_1, c_1, e_1
  76. Translate(Sequence[Rotate[SideCut, (n * rot), OO], n, 0, nSides, 2], w) → listSideCut
  77. Translate(Sequence[Rotate[SideCut, (n * rot), OO], n, 1, nSides, 2], w) → listSideCut2
  78. Rotate(Translate[Translate[Sequence[Polygon[Rotate[P, (n * rot), OO], Rotate[L', (n * rot), OO], Rotate[M, (n * rot), OO], Rotate[L'', (n * rot), OO]], n, 0, nSides, 2], w], Vector[(-2 * e_0)]], α, s) → listBaseCut
  79. Translate(listRibbonCut2, Vector[e + (2 * e_0)]) → listRibbonCut2'
  80. Rotate(Translate[Sequence[Rotate[SideTop, (n * rot), OO], n, 0, nSides, 2], w], α, s) → listSideTop
  81. Rotate(Translate[Sequence[Rotate[SideTop, (n * rot), OO], n, 1, nSides, 2], w], α, s) → listSideTop2
  82. Rotate(Translate[Sequence[Rotate[SideRibbon, (n * rot), OO], n, 0, nSides, 2], w], α, s) → listSideRibbon
  83. Rotate(Translate[Sequence[Rotate[SideBase, (n * rot), OO], n, 0, nSides, 2], w], α, s) → listSideBase
  84. Rotate(Translate[Sequence[Rotate[SideRibbon, (n * rot), OO], n, 1, nSides, 2], w], α, s) → listSideRibbon2
  85. Rotate(Translate[Sequence[Rotate[SideBase, (n * rot), OO], n, 1, nSides, 2], w], α, s) → listSideBase2
  86. Translate(listRibbonCut, e) → listRibbonCut'
  87. Translate(listBaseCut, Vector[e + (6 * e_0)]) → listBaseCut'
  88. Translate(listBaseCut2, Vector[e + (5 * e_0)]) → listBaseCut2'

AI Drawing Prompt Reference

Create an animation of a 3D paper model folding process, demonstrating the transformation from a flat shape to a solid structure. The model is based on the book 'Action Modular Origami', involving multiple geometric faces and edges, formed through rotations and reflections. The animation shows the model unfolding and folding into a 3D shape, utilizing geometric transformations such as translation, rotation, and reflection, along with vector operations and geometric constructions.
The prompt above was compiled from the original drawing commands and is for reference only.