Flexicuboctahedron Animation
Loading the math board and drawing, please wait…
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
Intersect(zAxis, xOyPlane) → APoint(xAxis) → BPoint(Circle[B, Distance[A, B], Segment[A, B]]) → CLine(B, C) → qIf(bControl ≟ bConstClock, ang5a, ang5s) → ang5Rotate(A, ang5, q) → A'_1If(bControl ≟ bConstClock, ang1a, ang1s) → ang1Cube(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, faceBCGFLine(C, E) → fPolygon(A, D, H) → poly1, h, a_1, dSequence(Rotate[{poly1, faceABCD}, (n * 120°), f], n, 0, 2, 1) → listPoly00Rotate(A, ang1, edgeBC) → A'Plane((0, shiftDistance2, 0), (1, shiftDistance2, 0), (0, shiftDistance2, 1)) → yzOrthogonalLine(A', edgeAE, yz) → gIntersect(g, edgeAE) → JIf(bControl ≟ bConstClock, ang2a, ang2s) → ang2Translate(Rotate[listPoly00, ang1, edgeBC], u) → listPoly01Rotate(B, ang2, edgeCD) → B'Plane(B, C, G) → cOrthogonalLine(B', edgeBF, c) → iIntersect(i, edgeBF) → KVector(B', K) → vVector(B, K) → wTranslate(Translate[Rotate[listPoly01, ang2, edgeCD], v], w) → listPoly02If(bControl ≟ bConstClock, ang3a, ang3s) → ang3If(bControl ≟ bConstClock, ang4a, ang4s) → ang4Rotate(listPoly02, ang3, edgeFG) → listPoly03Rotate(B, ang4, edgeCD) → F'_2Rotate(E, ang3, edgeFG) → LLine(F, L) → tPlane(B, A, E) → kOrthogonalLine(E, t, k) → g_1OrthogonalLine(A'_1, g_1, k) → sIntersect(s, g_1) → QVector(A, Q) → v_1Vector(A'_1, Q) → u_1Line(B, F) → lOrthogonalLine(F'_2, l, c) → mIntersect(l, m) → MVector(F'_2, M) → nTranslate(Rotate[listPoly03, ang4, edgeCD], n) → listPoly04Translate(Translate[Rotate[listPoly04, ang5, q], u_1], v_1) → listPoly05OrthogonalLine(L, k) → f_1OrthogonalLine(B, edgeBF, k) → rIntersect(yAxis, zAxis) → IVector(C, B') → eTranslate(F, v) → F'Translate(F, e) → F'_1Plane((shiftDistance, 0, 0), (shiftDistance, 1, 0), (shiftDistance, 0, 1)) → xyMirror(listPoly05, xy) → listPoly05'Mirror(listPoly05', k) → listPoly05''Mirror(listPoly05, k) → listPoly05'_1Vector(A, B) → pTranslate(B, p) → B'_1Point(listPoly05'_1) → NPoint(listPoly05'_1) → OOrthogonalLine(A'_1, r, k) → h_1Intersect(g_1, edgeAE) → PIf(clock < 3, (-shiftAngle) + 0*°, If[clock ≥ 3 ∧ clock < 4, 180° + shiftAngle, (-shiftAngle) + (180° * (1 - smoothramp(clock - 5)))]) → ang6aIf(bControl ≟ bConstClock, ang6a, ang6s) → ang6Intersect(h_1, r) → RTranslate(Rotate[G, ang1, edgeBC], u) → G_1Translate(Translate[Rotate[G_1, ang2, edgeCD], v], w) → G_2Rotate(G_2, ang3, edgeFG) → G_3Translate(Rotate[G_3, ang4, edgeCD], n) → G_4Translate(Translate[Rotate[G_4, ang5, q], u_1], v_1) → G_5Translate(Rotate[H, ang1, edgeBC], u) → H_1Translate(Translate[Rotate[H_1, ang2, edgeCD], v], w) → H_2Rotate(H_2, ang3, edgeFG) → H_3Translate(Rotate[H_3, ang4, edgeCD], n) → H_4Translate(Translate[Rotate[H_4, ang5, q], u_1], v_1) → H_5Line(G_5, H_5) → i_1Translate(Rotate[D, ang1, edgeBC], u) → D_1Translate(Translate[Rotate[D_1, ang2, edgeCD], v], w) → D_2Rotate(D_2, ang3, edgeFG) → D_3Translate(Rotate[D_3, ang4, edgeCD], n) → D_4Translate(Translate[Rotate[D_4, ang5, q], u_1], v_1) → D_5Translate(Rotate[C, ang1, edgeBC], u) → C_1Translate(Translate[Rotate[C_1, ang2, edgeCD], v], w) → C_2Rotate(C_2, ang3, edgeFG) → C_3Translate(Rotate[C_3, ang4, edgeCD], n) → C_4Translate(Translate[Rotate[C_4, ang5, q], u_1], v_1) → C_5Plane(C_5, D_5, G_5) → oRotate(Mirror[listPoly05, o], (-ang6_1), i_1) → listPoly06Mirror(listPoly06, yz) → listPoly06'Mirror(listPoly06, xy) → listPoly06'_1Mirror(listPoly06', xy) → listPoly06''Mirror(listPoly03, k) → listPoly03'Mirror(listPoly03, xy) → listPoly03'_1Mirror(listPoly03'_1, k) → listPoly03'_2Rotate(listPoly02, (-(90°)), edgeEH) → listPoly12Mirror(listPoly12, yz) → listPoly12'Mirror(listPoly12, xy) → listPoly12'_1Mirror(listPoly12', xy) → listPoly12''Point(xAxis) → TLine(S, T) → j_1Line(U, V) → k_1If(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.