Ribbon Slider: Dynamic Animation of an Origami Model
Loading the math board and drawing, please wait…
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
Dilate(C, ribbonCut, B) → C'_1Intersect(xAxis, yAxis) → APolygon(A, B, C) → poly1, c, a, bDilate(C, topCut, K) → C'Vector(A, B) → vTranslate(A, u) → DPolygon(A, D, nSides) → poly2, f, F, G, H, I, J, g, h, i, j, k, l, m, EMidpoint(D, H) → OOSequence(Polygon[Rotate[A, (n * rot), OO], Rotate[B, (n * rot), OO], Rotate[C, (n * rot), OO]], n, 0, nSides, 1) → list1OrthogonalLine(K, a) → nIntersect(n, b) → LMirror(K, c) → K'Rotate(L, 180°, A) → L'OrthogonalLine(L', n) → pLine(B, A) → qIntersect(p, q) → MPolygon(K', L', M, B) → base, k', l', m_1, b_1Polygon(A, L, K, B) → ribbon, a_1, l_1, k_1, b_2OrthogonalLine(N, a) → rIntersect(r, b) → OPolygon(K, L, O, N) → top, k_2, l_2, o, n_1Sequence(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) → list2Sequence(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) → list3Rotate(K', rot, OO) → K''Rotate(L', rot, OO) → L''Rotate(M, rot, OO) → M'Rotate(B, rot, OO) → B'Polygon(K'', L'', M', B') → base', k'', l'', m', b'Rotate(A, rot, OO) → A'Rotate(L, rot, OO) → L'_1Rotate(K, rot, OO) → K'_1Rotate(B, rot, OO) → B'_1Polygon(A', L'_1, K'_1, B'_1) → ribbon', a', l'_1, k'_1, b'_1Rotate(K, rot, OO) → K'_2Rotate(L, rot, OO) → L'_2Rotate(O, rot, OO) → O'Rotate(N, rot, OO) → N'Polygon(K'_2, L'_2, O', N') → top', k'_2, l'_2, o', n'Polygon(B, D, M', L'', A, L, K) → ribbonCut_1, b_3, d, m'_1, l''_1, a_2, l_3, k_3Intersect(k', k'') → PPolygon(P, L', M, L'') → baseCut, p_1, l'_3, m_2, l''_2Intersect(b, a_1) → QIntersect(m', d) → RIntersect(b, a_1) → SIntersect(m', d) → TIntersect(m', d) → UIntersect(b, l_2) → VIntersect(m', d) → WIntersect(b, l_2) → ZIntersect(b, m') → A_1Polygon(B, D, A_1, L, C'_1) → ribbonLong, b_4, d_1, a_3, l_4, c'_1Vector(OO, OOO) → wTranslate(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) → listRibbonLongTranslate(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) → listBaseCutTranslate(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) → listRibbonCutTranslate(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) → listTopTranslate(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) → listBaseCut2Translate(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) → listRibbonCut2Translate(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.