柔性立方八面体(滚动动画)

柔性立方八面体(滚动动画)
几何画板及绘图内容加载中,请稍等……
2020-07-17 00:42
所属专题 Action Modular Origami
① 本范例演示了一个由纸张折叠而成的柔性立方八面体(Flexicuboctahedron)的滚动动画,展示多面体在空间中的连续变形与运动。② 核心数学概念涉及立体几何中的多面体结构、旋转与平移变换,以及通过参数控制实现动态几何模拟。③ 作图要点:使用GeoGebra命令如Point、Intersect、Cube、OrthogonalLine、Sphere、Dilate、Segment、Polygon、Line、Sequence、PolyLine、If、Rotate、Plane、Vector、Translate、Mirror等,构建了立方体及其面、边、顶点,并通过滑块(如ang1s、ang0、clock)和布尔控制(bControl)驱动旋转与滚动,实现动画效果。④ 适合中学高年级至大学阶段的数学教学,用于探索多面体的几何性质、空间变换及参数化动画设计,也可作为折纸数学与动态几何的拓展案例。

GeoGebra 命令及参数

  1. Point(xAxis) → B
  2. Intersect(yAxis, xAxis) → A
  3. Point(Circle[B, Distance[A, B], Segment[A, B]]) → C
  4. Cube(A, B, C) → cube1, D, faceCDHG, faceEFGH, edgeAD, edgeAB, edgeBC, edgeCD, edgeAE, edgeDH, edgeEH, edgeEF, E, edgeBF, edgeFG, edgeCG, edgeGH, F, G, H, faceABCD, faceADHE, faceABFE, faceBCGF
  5. OrthogonalLine(CC, xAxis) → p
  6. Sphere(A, radius) → ccc
  7. Dilate(C, dil, OOO) → C'
  8. Cube(A, B, C) → listPoly8_1, listPoly8_2, listPoly8_{11}, listPoly8_{12}, listPoly8_{13}, listPoly8_{14}, listPoly8_{15}, listPoly8_{16}, listPoly8_{17}, listPoly8_{18}, listPoly8_{19}, listPoly8_{20}, listPoly8_3, listPoly8_{21}, listPoly8_{22}, listPoly8_{23}, listPoly8_{24}, listPoly8_4, listPoly8_5, listPoly8_6, listPoly8_7, listPoly8_8, listPoly8_9, listPoly8_{10}
  9. Dilate(D, dil, OOO) → D'
  10. Segment(C', D') → edgeCD'
  11. Intersect(edgeBF, ccc) → P_1, W_1
  12. Intersect(edgeEH, ccc) → O_1, V_1
  13. Intersect(edgeEF, ccc) → N_1, M_1
  14. Polygon(B, P_1, E, A) → poly7, b, n_1, p_1, a_1
  15. Polygon(P_1, O_1, E) → poly8, c_1, d_1, e_1
  16. Line(A, G) → a
  17. Sequence(Rotate[{poly7, poly8}, (n * 120°), a], n, 0, 3) → listPoly0
  18. Line(Q, xAxis) → j
  19. Point(j) → T
  20. Point(j) → B_2
  21. Point(j) → C_2
  22. Intersect(j, yAxis) → S
  23. Line(R, j) → k
  24. Point(k) → U
  25. Point(k) → V
  26. PolyLine(S, T, U, V, B_2, C_2) → l
  27. Intersect(p, l) → CC1
  28. If(bControl ≟ constSingle, ang0, If[bControl ≟ constClock, ang1a, ang1s]) → ang1
  29. Point(k) → Z
  30. Intersect(k, yAxis) → W
  31. Point(k) → Z_1
  32. Point(k) → A_2
  33. Point(j) → B_1
  34. Point(j) → A_1
  35. PolyLine(W, Z, A_1, B_1, Z_1, A_2) → m
  36. Intersect(p, m) → CC2
  37. If(bControl ≟ constSingle, ang0, If[bControl ≟ constClock, ang2a, ang2s]) → ang2
  38. Dilate(H, dil, OOO) → H'
  39. Dilate(E, dil, OOO) → E'
  40. Segment(H', E') → edgeEH'
  41. Dilate(B, dil, OOO) → B'
  42. Dilate(F, dil, OOO) → F'
  43. Segment(F', B') → edgeBF'
  44. Point(j) → E_2
  45. Point(j) → D_2
  46. Point(j) → D_1
  47. Point(k) → C_1
  48. Point(m) → F_2
  49. PolyLine(S, D_1, C_1, F_2, D_2, E_2) → n
  50. Intersect(p, n) → CC3, CC3_1, CC3_2
  51. If(bControl ≟ constSingle, ang0, If[bControl ≟ constClock, ang3a, ang3s]) → ang3
  52. Rotate(Mirror[polyPoints1, listPoly8_{11}], (-ang1), edgeCD) → polyPoints1'
  53. Point(polyPoints1') → K
  54. Plane(B, C, K) → e
  55. Point(polyPoints1') → J
  56. Point(polyPoints1') → F_1
  57. Polygon(J, K, F_1) → poly1, f_1, j_1, k_1
  58. Rotate(Mirror[listPoly0, listPoly8_{11}], (-ang1), edgeCD') → listPoly2
  59. Segment(J, F_1) → q
  60. Point(polyPoints1') → I
  61. Segment(I, J) → f
  62. Rotate(Mirror[polyPoints1', poly1], (-ang2), q) → polyPoints1''
  63. Point(polyPoints1'') → E_1
  64. Rotate(cube1, (-ang1), edgeCD) → cube2
  65. Rotate(Mirror[polyPoints1, faceEFGH], 0*° + ang2, edgeEH) → polyPoints1'_1
  66. Point(polyPoints1'_1) → P
  67. Point(polyPoints1'_1) → O
  68. Rotate(cube1, ang2, edgeEH) → cube6
  69. Point(polyPoints1') → L
  70. Segment(K, L) → g
  71. Point(polyPoints1'') → M
  72. Point(polyPoints1'') → N
  73. Segment(M, N) → h
  74. Rotate(cube2, (-ang2), f) → cube3
  75. Segment(P, O) → i
  76. Rotate(cube3, ang3, h) → cube4
  77. Rotate(cube2, ang3, g) → cube5
  78. Rotate(cube1, ang3, edgeBF) → cube7
  79. Rotate(cube6, (-ang3), i) → cube8
  80. Rotate(Mirror[listPoly2, poly1], (-ang2), q) → listPoly3
  81. Intersect(edgeEF, edgeEH) → Q_1
  82. Point(polyPoints1'') → G_1
  83. Point(polyPoints1'') → H_1
  84. Segment(G_1, H_1) → r
  85. Point(polyPoints1'') → I_1
  86. Polygon(G_1, F_1, I_1) → poly2, i_1, g_1, f_2
  87. Rotate(Mirror[listPoly3, poly2], ang3, r) → listPoly4
  88. Vector(M, F_1) → u
  89. Vector(M, K) → v
  90. Translate(I, u) → I'
  91. Translate(J, u) → J'
  92. Segment(I', J') → f'
  93. Translate(I, u) → I'_1
  94. Translate(F_1, v) → J_1
  95. Translate(I', u) → I''
  96. Translate(I_1, v) → I_1''
  97. Translate(I', v) → I''''
  98. Segment(J_1, I'''') → s
  99. Polygon(C, I'''', J_1) → poly3, j_2, c, i''''
  100. Rotate(Mirror[listPoly0, faceEFGH], 0*° + ang2, edgeEH') → listPoly6
  101. Rotate(Mirror[listPoly0, faceABFE], 0*° - ang3, edgeBF') → listPoly7
  102. Rotate(Mirror[listPoly2, poly3], 180° + ang3, s) → listPoly5
  103. Point(polyPoints1'_1) → K_1
  104. Point(polyPoints1'_1) → L_1
  105. Point(polyPoints1'_1) → R_1
  106. Polygon(K_1, L_1, R_1) → poly4, r_1, k_2, l_1
  107. Point(polyPoints1'_1) → S_1
  108. Point(polyPoints1'_1) → T_1
  109. Point(polyPoints1'_1) → U_1
  110. Polygon(U_1, S_1, T_1) → poly5, t_1, u_1, s_1
  111. Rotate(Mirror[listPoly6, poly5], 180° - ang3, s_1) → listPoly8
  112. Mirror(listPoly9, poly3) → listPoly9'
  113. Mirror(listPoly6, e) → listPoly6'
  114. Mirror(listPoly4, e) → listPoly4'
  115. Mirror(listPoly3, e) → listPoly3'
  116. Translate({listPoly0, listPoly3, listPoly5, listPoly8}, Vector[A, A]) → listSet11
  117. Mirror(listPoly8, e) → listPoly8'
  118. Translate({listPoly3', listPoly8'}, Vector[A, A]) → listTopSet2
  119. Translate({listPoly4', listPoly6'}, Vector[A, A]) → listTopSet1
  120. Translate(Mirror[{listPoly2, listPoly7}, e], Vector[A, A]) → listBottomSet2
  121. Translate(Mirror[{listPoly0, listPoly5}, e], Vector[A, A]) → listBottomSet1
  122. Translate({listPoly2, listPoly4, listPoly6, listPoly7}, Vector[A, A]) → listSet12
  123. Point(j) → H_2
  124. Point(j) → I_2
  125. Point(k) → J_2
  126. Point(k) → K_2
  127. PolyLine(H_2, I_2, J_2, K_2) → t
  128. Intersect(p, t) → CCC4
  129. OrthogonalLine(G_2, xOyPlane) → d
  130. Translate(d, Vector[w / 2]) → d'
  131. Translate(Rotate[{listBottomSet2, listTopSet1}, (y(CCC4) * 180°), d'], w) → listSet21
  132. Translate(Rotate[{listBottomSet1, listTopSet2}, (y(CCC4) * 180°), d'], w) → listSet22
  133. Line(A, B) → h_1
  134. Line(A, I) → m_1
  135. Line(A, P) → q_1
  136. Rotate(B, (-ang1), m_1) → B'_1
  137. Rotate(P, (-ang1), m_1) → P'
  138. Point(m_1) → L_2
  139. Plane(A, B, P) → o
  140. OrthogonalLine(P', q_1, o) → b_1
  141. Intersect(b_1, q_1) → M_2
  142. Vector(P', M_2) → v_1
  143. Vector((abs(x(P') - x(M_2)), 0, 0)) → vabs_1
  144. Translate(Rotate[listPoly0, (-ang1), m_1], v_1) → listPoly01
  145. Translate(Rotate[B, (-ang1), m_1], v_1) → B1
  146. Rotate(B1, ang2, h_1) → B1'
  147. Rotate(listPoly01, ang2, h_1) → listPoly02

AI 绘图提示语参考

绘制一个可滚动的flexicuboctahedron,展示其由纸折叠而成的连续变形和空间运动。核心包含立方体及其面、边、顶点,结合旋转和位移变换,通过滑块控制旋转和滚动实现动画效果。关键对象有立方体、球体、多边形和线段,需体现几何变换和动态模拟。
以上提示语为根据原始绘图命令整理而来,仅供参考。