Ribbon Slider: Dynamic Animation of an Origami Model

Ribbon Slider: Dynamic Animation of an Origami Model
Loading the math board and drawing, please wait…
2020-07-16 04:27
In collections Action Modular Origami
① This example demonstrates a paper-folding model from the book 'Action Modular Origami', animated dynamically via a GeoGebra slider to create a ribbon-like structure. ② Core mathematical concepts include 3D vectors, affine transformations (translation, rotation, reflection), polygon construction, and parametric animation, with background tags of exponential functions and conditional probability, but the focus is on geometric transformations and sequence generation. ③ Construction highlights: using commands such as Dilate, Intersect, Polygon, Vector, Translate, Midpoint, Sequence, OrthogonalLine, Mirror, Rotate, and Line, it builds objects like ribbonCut, topCut, poly1, poly2, and drives the folding animation with sliders n, rot, and frac. ④ Suitable for high school to early college mathematics or geometry courses, for visualizing transformations in 3D space and parametric modeling, also useful as a STEAM or origami-mathematics demonstration.

GeoGebra Commands & Parameters

  1. Dilate(C, ribbonCut, B) → C'_1
  2. Intersect(xAxis, yAxis) → A
  3. Polygon(A, B, C) → poly1, c, a, b
  4. Dilate(C, topCut, K) → C'
  5. Vector(A, B) → v
  6. Translate(A, u) → D
  7. Polygon(A, D, nSides) → poly2, f, F, G, H, I, J, g, h, i, j, k, l, m, E
  8. Midpoint(D, H) → OO
  9. Sequence(Polygon[Rotate[A, (n * rot), OO], Rotate[B, (n * rot), OO], Rotate[C, (n * rot), OO]], n, 0, nSides, 1) → list1
  10. OrthogonalLine(K, a) → n
  11. Intersect(n, b) → L
  12. Mirror(K, c) → K'
  13. Rotate(L, 180°, A) → L'
  14. OrthogonalLine(L', n) → p
  15. Line(B, A) → q
  16. Intersect(p, q) → M
  17. Polygon(K', L', M, B) → base, k', l', m_1, b_1
  18. Polygon(A, L, K, B) → ribbon, a_1, l_1, k_1, b_2
  19. OrthogonalLine(N, a) → r
  20. Intersect(r, b) → O
  21. Polygon(K, L, O, N) → top, k_2, l_2, o, n_1
  22. 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
  23. 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
  24. Rotate(K', rot, OO) → K''
  25. Rotate(L', rot, OO) → L''
  26. Rotate(M, rot, OO) → M'
  27. Rotate(B, rot, OO) → B'
  28. Polygon(K'', L'', M', B') → base', k'', l'', m', b'
  29. Rotate(A, rot, OO) → A'
  30. Rotate(L, rot, OO) → L'_1
  31. Rotate(K, rot, OO) → K'_1
  32. Rotate(B, rot, OO) → B'_1
  33. Polygon(A', L'_1, K'_1, B'_1) → ribbon', a', l'_1, k'_1, b'_1
  34. Rotate(K, rot, OO) → K'_2
  35. Rotate(L, rot, OO) → L'_2
  36. Rotate(O, rot, OO) → O'
  37. Rotate(N, rot, OO) → N'
  38. Polygon(K'_2, L'_2, O', N') → top', k'_2, l'_2, o', n'
  39. Polygon(B, D, M', L'', A, L, K) → ribbonCut_1, b_3, d, m'_1, l''_1, a_2, l_3, k_3
  40. Intersect(k', k'') → P
  41. Polygon(P, L', M, L'') → baseCut, p_1, l'_3, m_2, l''_2
  42. Intersect(b, a_1) → Q
  43. Intersect(m', d) → R
  44. Intersect(b, a_1) → S
  45. Intersect(m', d) → T
  46. Intersect(m', d) → U
  47. Intersect(b, l_2) → V
  48. Intersect(m', d) → W
  49. Intersect(b, l_2) → Z
  50. Intersect(b, m') → A_1
  51. Polygon(B, D, A_1, L, C'_1) → ribbonLong, b_4, d_1, a_3, l_4, c'_1
  52. Vector(OO, OOO) → w
  53. 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
  54. 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) → listBaseCut
  55. 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) → listRibbonCut
  56. 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) → listTop
  57. 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) → listBaseCut2
  58. 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], w) → listRibbonCut2
  59. 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) → listTop2

AI Drawing Prompt Reference

Create a dynamic origami model that resembles a ribbon structure through a slider-controlled animation. Start by constructing an initial triangle, then use transformations like rotation, translation, and mirroring to generate a series of polygons. Finally, use the slider n to control the rotation angle of these polygons, forming a dynamic origami animation.
The prompt above was compiled from the original drawing commands and is for reference only.