谢尔宾斯基地毯金字塔:分形立体的迭代构造

谢尔宾斯基地毯金字塔:分形立体的迭代构造
几何画板及绘图内容加载中,请稍等……
2021-03-14 04:40
本范例演示如何在三维空间中用迭代方式构造“谢尔宾斯基地毯”对应的分形金字塔/立体分形外壳。核心数学概念包括分形几何、递归/迭代构造、三维立体几何的面与棱建模,以及由顶点、边中点与旋转/平移获得各层结构的位置关系。作图要点:利用 GeoGebra 的 Polygon、Pyramid 创建基础多边形与金字塔实体;用 Point 生成关键顶点,并用 Midpoint 计算边中点以形成下一层的子结构;借助 Plane、OrthogonalPlane 和 OrthogonalLine 确定平面及其正交关系;通过 Rotate、Translate 完成结构在空间中的旋转与平移;并使用 Vector 与 Intersect 来进行方向与交点定位,进一步组合得到各侧面(如 faceABF、faceBCF 等)及棱(如 arestaAF、arestaBF 等),最终生成分形金字塔的层状外形。适合中学拔尖竞赛与大学本科数学/计算机图形课程中讲解分形与几何建模,也可用于课堂演示分形迭代思想。

GeoGebra 命令及参数

  1. Polygon(A, B, 4, xOyPlane) → pol1, f, g, h, i, C, D
  2. Pyramid(pol1, 4) → b, F, faceABF, faceBCF, faceCDF, faceADF, arestaAF, arestaBF, arestaCF, arestaDF
  3. Point(Segment[A, B], 1 / 3) → E
  4. OrthogonalLine(E, f, faceABF) → l
  5. Point(Segment[A, E], 1 / 3) → J
  6. Point(Segment[A, E], 2 / 3) → K
  7. OrthogonalLine(J, f, faceABF) → j
  8. OrthogonalLine(K, f, faceABF) → k
  9. Intersect(k, arestaAF) → N
  10. Intersect(arestaAF, j) → O
  11. Midpoint(O, N) → B_0
  12. Plane(B_0, xOyPlane) → p
  13. OrthogonalLine(O, p) → n
  14. OrthogonalLine(N, p) → q
  15. OrthogonalLine(N, p) → r
  16. Intersect(n, p) → B_4
  17. Rotate(B_4, 90°, B_0, p) → B_3
  18. Polygon(B_4, B_3, 4, p) → pol2, s, t, a, c, B_2, B_1
  19. Rotate(pol2, 90°, zAxis) → pol2'
  20. Rotate(pol2', 90°, zAxis) → pol2''
  21. Rotate(pol2'', 90°, zAxis) → pol2'''
  22. Midpoint(A, O) → C_0
  23. OrthogonalPlane(C_0, zAxis) → q_1
  24. OrthogonalLine(C_0, n, space) → m
  25. OrthogonalLine(C_0, m, q_1) → d
  26. Polygon(C_4, C_3, C_2, C_1) → q1, g_1, m_1, i_1, l_1
  27. OrthogonalLine(B_0, q_1) → e
  28. Vector(C_0, C_0 + (Distance[B_1, B_2], 0)) → ch
  29. Point(Segment[F, A], 1 / 3) → A_4
  30. Point(Segment[F, B], 1 / 3) → A_3
  31. Plane(A_4, q_1) → r_1
  32. Polygon(A_4, A_3, 4, r_1) → poly1, f_1, h_1, j_1, k_1, A_2, A_1
  33. Vector(B_0, B_0 + (Distance[A_1, A_2], 0)) → bh
  34. Vector(B_0, B_0 + (0, Distance[A_1, A_2])) → bv
  35. Vector(C_0, C_0 + (0, Distance[B_1, B_2])) → cv
  36. Translate(pol2, bv) → pol2'_{1}
  37. Translate(pol2''', bh) → q2
  38. Translate(pol2', bv) → pol2''_{1}
  39. Translate(q_1, Vector[(0, 0, 0)]) → p_1
  40. Translate(pol2, bh) → pol2'_{2}
  41. Translate(p_1, Vector[(0, 0, 0)]) → p_2
  42. Translate(q1, cv) → q1'
  43. Translate(q1', cv) → q1''
  44. Translate(pol1, u) → pol1'
  45. Translate(q1'', ch) → q1'''
  46. Translate(q1, ch) → q1'_{1}
  47. Translate(q1'_{1}, ch) → q3
  48. Translate(q3, cv) → q3'
  49. Translate(q3', cv) → q3''
  50. Translate(q1'', bv) → q1'''_{1}
  51. Translate(q1''', bv) → q4
  52. Translate(q3'', bv) → q3'''
  53. Translate(q1', bv) → q1''_{1}
  54. Translate(q1, bv) → q1'_{2}
  55. Translate(q1'_{1}, bv) → q5
  56. Translate(q3, bv) → q3'_{1}
  57. Translate(q3', bv) → q3''_{1}
  58. Translate(q3, bh) → q3'_{2}
  59. Translate(q3', bh) → q3''_{2}
  60. Translate(q3'', bh) → q3'''_{1}
  61. Translate(q1''', bh) → q6
  62. Translate(q1'', bh) → q1'''_{2}
  63. Translate(q1', bh) → q1''_{2}
  64. Translate(q1, bh) → q1'_{3}
  65. Translate(q1'_{1}, bh) → q7
  66. Translate(xOyPlane, Vector[(0, 0, 0)]) → xOyPlane'
  67. Translate(q1'''_{1}, bv) → q8
  68. Translate(q1''_{1}, bv) → q9
  69. Translate(q1'_{2}, bv) → q10
  70. Translate(q5, bv) → q5'
  71. Translate(q3'_{1}, bv) → q11
  72. Translate(q3''_{1}, bv) → q12
  73. Translate(q3''', bv) → q13
  74. Translate(q4, bv) → q4'
  75. Translate(q13, bh) → q13'
  76. Translate(q4', bh) → q4''
  77. Translate(q8, bh) → q8'
  78. Translate(q9, bh) → q9'
  79. Translate(q10, bh) → q10'
  80. Translate(q5', bh) → q5''
  81. Translate(q11, bh) → q11'
  82. Translate(q12, bh) → q12'
  83. Translate(q1'''_{2}, bh) → q14
  84. Translate(q6, bh) → q6'
  85. Translate(q3'''_{1}, bh) → q15
  86. Translate(q1''_{2}, bh) → q16
  87. Translate(q1'_{3}, bh) → q17
  88. Translate(q7, bh) → q7'
  89. Translate(q3'_{2}, bh) → q18
  90. Translate(q3''_{2}, bh) → q19
  91. Translate(q14, bv) → q14'
  92. Translate(q16, v) → q16'
  93. Translate(q16', bv) → q16''
  94. Translate(q17, bv) → q17'
  95. Translate(q7', bv) → q7''
  96. Translate(q19, bv) → q19'
  97. Translate(q15, bv) → q15'
  98. Translate(q6', bv) → q6''
  99. Translate(q18, bv) → q18'
  100. Translate(q13', bh) → q13''
  101. Translate(q4'', bh) → q4'''
  102. Translate(q8', bh) → q8''
  103. Translate(q9', bh) → q9''
  104. Translate(q10', bh) → q10''
  105. Translate(q5'', bh) → q5'''
  106. Translate(q11', bh) → q11''
  107. Translate(q12', bh) → q12''

AI 绘图提示语参考

绘制一个基于谢尔宾斯基地毯风格的三维分形金字塔。先构建一个正方形底面和四棱锥,在底面一条边的三分之一处取点,并过该点作垂直于底面的直线,与棱锥侧棱相交,得到交点。在底面与侧棱之间构造一个与底面平行的正方形平面,并旋转复制该平面三次,形成阶梯状结构。再在侧面构造相似的小正方形,通过平移复制,在金字塔各层和侧面重复排列,最终形成层层嵌套、逐步缩小的分形实体,包含可见的面与棱边。
以上提示语为根据原始绘图命令整理而来,仅供参考。