Rotating Octagram Ring Animation
Loading the math board and drawing, please wait…
In collections
Action Modular Origami
This example demonstrates the rotation animation of an octagram ring model folded from paper, as described in the book 'Action Modular Origami'. It involves core mathematical concepts like polygon construction, geometric transformations (rotation, translation), and vector operations. The construction utilizes GeoGebra commands and objects such as Intersect, PolyLine, If, Plane, Line, Midpoint, Rotate, Vector, Dilate, Circle, OrthogonalLine, Polygon, AngularBisector, Point, Translate, LineBisector, Mirror, and Distance. It is suitable for high school students and above to learn geometric constructions, transformations, and parametric modeling, as well as for mathematical teaching demonstrations.
GeoGebra Commands & Parameters
Intersect(yAxis, zAxis) → KPolyLine(C_2, E_3, O_3, F_3, H_3, I_3, J_3, K_3, L_3, M_3, N_3) → j_3Intersect(g_3, j_3) → offsetCurveIf(clock0 < 2.75, clock0, 2.75 - (clock0 - 2.75)) → clockuseIf(clock < 1 ∨ clock > 3, 0°, (-((((clock - 1) * 90))°))) → βIf(clock < 1 ∨ clock > 3, 0°, ((((clock - 1) * 90)) / 2)°) → γPlane(E, F, C) → aLine(E, C) → pMidpoint(C, D) → HIntersect(xAxis, yAxis) → ARotate(C, If[α ≥ 0°, (-α), (-2 * α)], A, a) → C'Vector((0, 0, (-z(C')))) → vShiftDilate(C, 0.5^(0.5), A) → C'_1Midpoint(C'_1, A) → OCircle(O, C'_1, a) → rOrthogonalLine(O, p, a) → qIntersect(q, r) → P, QPolygon(C'_1, Q, A) → poly5, a_2, c'_1, q_1AngularBisector(p, c'_1) → s, tIntersect(a_2, t) → ROrthogonalLine(A, xOyPlane) → lOrthogonalLine(R, l, a) → f_1Intersect(f_1, l) → SPolygon(R, S, 4, a) → poly6, g_1, h_1, i_1, j_1, T, URotate(K, (-β), T, a) → K'Polygon(R, S, T) → poly7, t_1, r_1, s_1AngularBisector(s_1, r_1) → l_1, m_1Intersect(f_1, m_1) → WRotate(W, (-β), T, a) → W'Line(W', K') → b_1Rotate(R, If[clock < 2, (-γ), 45° - (2 * γ)], T, a) → R'OrthogonalLine(R', b_1, a) → p_1Intersect(b_1, p_1) → A_1Line(R', T) → f_2Point(zAxis) → C_1Midpoint(E, B) → JPlane(H, C_1, J) → oRotate(S, If[clock < 2, (-β), 45° + ((-β)) / 2], T, o) → S'_1Polygon(S', T, R') → poly8, r', s', t_2Plane(R', T, S') → uLine(T, S'_1) → g_2AngularBisector(f_2, g_2) → h_2, i_2Intersect(i_2, t_2) → D_1Line(D_1, f_2) → j_2Intersect(g_2, j_2) → E_1OrthogonalLine(E_1, g_2, u) → k_2Intersect(k_2, f_2) → F_1OrthogonalLine(F_1, a) → k_3Point(k_3) → P_3Dilate(F_1, offsetCurveValue, P_3) → Q_3Polygon(R', Q_3, S') → poly16, q_3, r_3, s_3Polygon(T, Q_3, S') → poly15, a_3, b_3, c_3PolyLine(Q_2, R_2, C_3, D_3, S_2, T_2, U_2, V_2, W_2, Z_2, A_3, B_3) → i_3PolyLine(D_2, E_2, N_2, O_2, P_2, F_2, G_2, H_2, I_2, J_2, K_2, L_2, M_2) → h_3PolyLine(O_1, P_1, A_2, B_2, Q_1, R_1, S_1, T_1, U_1, V_1, W_1, Z_1) → f_3Intersect(g_3, i_3) → offsetZIntersect(g_3, h_3) → offsetYIntersect(g_3, f_3) → offsetXVector((offsetXX, offsetYY, offsetZZ)) → vOffsetPolygon(R', F_1, 4, a) → poly10, n_2, p_2, q_2, r_2, I_1, J_1Translate(Polygon[R', Q_3, E_1], vOffset) → poly12OrthogonalLine(R', s', a) → m_2LineBisector(J_1, T, a) → c_1Mirror(R', c_1) → R''OrthogonalLine(R'', m_2, a) → d_1Intersect(m_2, d_1) → N_1Translate(Polygon[J_1, Q_3, R'], vOffset) → poly11Polygon(J_1, F_1, N_1) → poly14, s_2, b_2, e_2Circle(R', J_1, a) → d_2Intersect(m_2, d_2) → K_1, L_1Translate(Polygon[R', N_1, E_1], vOffset) → poly9OrthogonalLine(R', j_2, u) → l_2Intersect(j_2, l_2) → H_1Intersect(k_2, l_2) → G_1Intersect(s_1, p) → ZRotate(Z, (-β), T, a) → Z'Line(Z', K') → n_1Intersect(p_1, n_1) → B_1Midpoint(C, B) → GPlane(A, G, F) → gRotate(G, If[α < 0°, α, (2 * α)], A, g) → G'Polygon(A, G', C') → poly2, c', a_1, g'Point(g') → LPolygon(L, C', G') → poly3, i, j, kMidpoint(D, E) → ICircle(A, C, a) → fCircle(A, G, g) → hTranslate(Sequence[Rotate[{poly3, Mirror[poly3, a]}, (n * 90°), zAxis], n, 0, 3, 1], vShift) → pos0rTranslate(pos0r, vOffset) → list1'Rotate(list1', 45°, l) → list1''Rotate(poly3, 45°, l) → poly3'Plane(G', xOyPlane) → mIntersect(l, m) → MMidpoint(A, M) → NPlane(N, xOyPlane) → nMirror(pos0r, n) → list1'_1Dilate(C', sqrt(2) - 1, L) → L'_1Dilate(G', sqrt(0.5), A) → L'Dilate(G', sqrt(2), A) → G''Polygon(L', L'_1, G'') → poly4, g'', l', l'_1Translate(poly4, vOffset) → poly4'Translate(Sequence[Rotate[{poly4', Mirror[poly4', a]}, (n * 90°), zAxis], n, 0, 3, 1], vShift) → pos0bRotate(Q, γ, K, a) → Q'Rotate(C'_1, γ, K, a) → VDistance(R', S') → distanceR'S'Distance(G'', L'_1) → distanceG''L'1Circle(T, R, a) → e_1Circle(T, S'_1, o) → c_2If(clock < 1 ∨ clock > 3, 0°, (-((((clock - 1) * 90))°))) → β_3If(clock < 1 ∨ clock > 4, 0°, ((((clock - 3) * 90)) / 2)°) → γ_3Point(zAxis) → M_1Translate(Sequence[Rotate[{poly9, poly12, poly11, Mirror[{poly9, poly11, poly12}, a]}, (n * 90°), zAxis], n, 0, 3, 1], Vector[(0 * vShift)]) → pos2rTranslate(Sequence[Rotate[{poly15, poly16, Mirror[{poly15, poly16}, a]}, (n * 90°), zAxis], n, 0, 3, 1], Vector[(0 * vShift)]) → pos2bPlane(M_1, xOyPlane) → vRotate(Mirror[pos2b, v], 45°, l) → pos3bRotate(Mirror[pos2r, v], 45°, l) → pos3rVector((0, 0, If[clock0 ≥ 2.75, fall - (((clock0 - 3.5) * z(T) / 2) * 3.5) + If[clock0 ≥ 2.75, ((clock0 - 2.75) * z(T) / 1.75), 0], (-fall) - z(T)] / 2)) → vFallTranslate(pos2r, vFall) → pos2r'Translate(pos2b, vFall) → pos2b'Translate(pos3b, vFall) → pos3b'Translate(pos3r, vFall) → pos3r'Dilate(S', 2, T) → S''Rotate(S'', (-(90°)), l) → S'''Polygon(S'', T, S''') → poly13, s''', s'', t_3Line(J_1, F_1) → k_1Intersect(k_2, f_2) → F_0Point(zAxis) → G_3
AI Drawing Prompt Reference
Create an octagram ring animation by first constructing an octagon, then rotating and scaling it to form a ring structure. Next, use rotations, translations, and reflections to build multiple polygons, ultimately creating a complex rotating animation effect.
The prompt above was compiled from the original drawing commands and is for reference only.