从圆到多边形:伊斯兰几何图案的构造

从圆到多边形:伊斯兰几何图案的构造
几何画板及绘图内容加载中,请稍等……
2019-12-31 16:20
该范例演示了如何通过圆与多边形的组合,生成具有对称性的伊斯兰风格几何图案。核心数学概念包括圆、正多边形、对称变换(旋转与镜像)、以及利用中点、垂线等构造元素。作图要点:使用GeoGebra的ConstructionStep逐步构建,通过Point定义关键点,Rotate实现旋转对称,Line与Mirror创建镜像线,Intersect求交点,Sequence生成重复结构,Midpoint确定中点,Circle绘制基础圆,Segment与PolyLine连接边线,OrthogonalLine构造垂线,最终用Polygon形成多边形区域。该范例适合中学及以上学段,用于探索几何变换、对称性与图案设计,也可作为数学与艺术融合的教学素材。

GeoGebra 命令及参数

  1. ConstructionStep() → stap
  2. Point(xAxis) → A
  3. Rotate(A, 54°) → A'
  4. Line(O, A') → f
  5. Mirror(A', xAxis) → A''
  6. Line(O, A'') → g
  7. Line(A', g) → h
  8. Line(A'', f) → i
  9. Intersect(h, i) → B
  10. Sequence(Translate[f, ((nn * x(B)), 0)], nn, -3, 3) → l1
  11. Sequence(Translate[h, ((nn * x(B)), 0)], nn, -4, 3) → l2
  12. Midpoint(O, A') → C
  13. Circle(A', C) → c
  14. Circle(O, C) → d
  15. Sequence(Translate[c, Vector[(nn * Vector[A', B])]], nn, -1, 3) → l3
  16. Sequence(Translate[l3, ((nn * x(B)), 0)], nn, -4, 3) → l4
  17. Rotate(C, 36°) → C'
  18. Rotate(C, (-(36°))) → C'_1
  19. Rotate(C, (-(72°))) → C'_2
  20. Rotate(C, 72°) → C'_3
  21. Rotate(C, 108°) → C'_4
  22. Rotate(C, (-(108°))) → C'_5
  23. Rotate(C, 144°) → C'_6
  24. Rotate(C, (-(144°))) → C'_7
  25. Rotate(C, 180°) → C'_8
  26. Segment(C', C'_6) → j
  27. Segment(C'_3, C'_8) → k
  28. Segment(C'_4, C'_7) → l
  29. Segment(C'_6, C'_5) → m
  30. Segment(C'_8, C'_2) → n
  31. Segment(C'_7, C'_1) → p
  32. Segment(C'_5, C) → q
  33. Segment(C'_2, C') → r
  34. Segment(C'_1, C'_3) → s
  35. Segment(C, C'_4) → t
  36. Intersect(s, t) → D
  37. Intersect(j, s) → E
  38. Intersect(k, t) → F
  39. Intersect(j, k) → G
  40. Intersect(j, l) → H
  41. Intersect(k, l) → I
  42. Intersect(k, m) → J
  43. Intersect(l, m) → K
  44. Intersect(l, n) → L
  45. Intersect(m, n) → M
  46. Intersect(m, p) → N
  47. Intersect(n, p) → P
  48. Intersect(n, q) → Q
  49. Intersect(p, q) → R
  50. Intersect(p, r) → S
  51. Intersect(q, r) → T
  52. Intersect(q, s) → U
  53. Intersect(r, s) → V
  54. Intersect(r, t) → W
  55. PolyLine(C', E, C'_7, N, C'_5, Q, C'_2, S, C'_1, U, C, W, C'_3, C', F, C'_4, H, C'_6, J, C'_8, L) → a
  56. Intersect(j, t) → Z
  57. PolyLine(D, E, M, N, P, Q, R, S, T, U, V, W, Z, D, F, G, H, I, J, K, L) → b
  58. Segment(O, C'_3) → e
  59. OrthogonalLine(C'_3, e) → f_1
  60. Segment(C, O) → g_1
  61. OrthogonalLine(C, g_1) → h_1
  62. Segment(C', O) → i_1
  63. OrthogonalLine(C', i_1) → j_1
  64. Intersect(h_1, j_1) → A_1
  65. Intersect(f_1, j_1) → B_1
  66. Polygon(A_1, B_1, 10) → veelhoek1, k_1, a_1, C_1, D_1, E_1, F_1, G_1, H_1, I_1, J_1, l_1, m_1, n_1, p_1, q_1, r_1, s_1, t_1
  67. Sequence(Translate[veelhoek1, Vector[(nn * Vector[A', B])]], nn, -2, 2) → l6
  68. Sequence(Translate[l6, Vector[(nn * Vector[O, B])]], nn, -4, 4) → l7
  69. Sequence(PolyLine[Translate[C', Vector[(nn * Vector[O, A''])]], Translate[E, Vector[(nn * Vector[O, A''])]], Translate[C'_3, Vector[(nn * Vector[O, A''])]], Translate[F, Vector[(nn * Vector[O, A''])]], Translate[C'_4, Vector[(nn * Vector[O, A''])]], Translate[H, Vector[(nn * Vector[O, A''])]], Translate[C'_6, Vector[(nn * Vector[O, A''])]], Translate[J, Vector[(nn * Vector[O, A''])]], Translate[C'_8, Vector[(nn * Vector[O, A''])]], Translate[L, Vector[(nn * Vector[O, A''])]], Translate[C'_7, Vector[(nn * Vector[O, A''])]], Translate[N, Vector[(nn * Vector[O, A''])]], Translate[C'_5, Vector[(nn * Vector[O, A''])]], Translate[Q, Vector[(nn * Vector[O, A''])]], Translate[C'_2, Vector[(nn * Vector[O, A''])]], Translate[S, Vector[(nn * Vector[O, A''])]], Translate[C'_1, Vector[(nn * Vector[O, A''])]], Translate[U, Vector[(nn * Vector[O, A''])]], Translate[C, Vector[(nn * Vector[O, A''])]], Translate[W, Vector[(nn * Vector[O, A''])]], Translate[C', Vector[(nn * Vector[O, A''])]]], nn, -3, 3) → l8
  70. Sequence(PolyLine[Translate[D, Vector[(nn * Vector[O, A''])]], Translate[E, Vector[(nn * Vector[O, A''])]], Translate[Z, Vector[(nn * Vector[O, A''])]], Translate[F, Vector[(nn * Vector[O, A''])]], Translate[G, Vector[(nn * Vector[O, A''])]], Translate[H, Vector[(nn * Vector[O, A''])]], Translate[I, Vector[(nn * Vector[O, A''])]], Translate[J, Vector[(nn * Vector[O, A''])]], Translate[K, Vector[(nn * Vector[O, A''])]], Translate[L, Vector[(nn * Vector[O, A''])]], Translate[M, Vector[(nn * Vector[O, A''])]], Translate[N, Vector[(nn * Vector[O, A''])]], Translate[P, Vector[(nn * Vector[O, A''])]], Translate[Q, Vector[(nn * Vector[O, A''])]], Translate[R, Vector[(nn * Vector[O, A''])]], Translate[S, Vector[(nn * Vector[O, A''])]], Translate[T, Vector[(nn * Vector[O, A''])]], Translate[U, Vector[(nn * Vector[O, A''])]], Translate[V, Vector[(nn * Vector[O, A''])]], Translate[W, Vector[(nn * Vector[O, A''])]], Translate[D, Vector[(nn * Vector[O, A''])]]], nn, -3, 3) → l9
  71. Sequence(Translate[l8, Vector[(nn * Vector[O, B])]], nn, -3, 3) → l10
  72. Sequence(Translate[l9, Vector[(nn * Vector[O, B])]], nn, -3, 3) → l11
  73. Mirror(E, Segment[B_1, A_1]) → E'
  74. Mirror(W, Segment[B_1, A_1]) → W'
  75. Mirror(D, Segment[B_1, A_1]) → D'
  76. Polygon(E', C', W', D') → vierhoek1, e', c', w', d'
  77. Mirror(E', y = y(A')) → E''
  78. Mirror(C', y = y(A')) → C''
  79. Mirror(W', y = y(A')) → W''
  80. Mirror(D', y = y(A')) → D''
  81. Polygon(E'', C'', W'', D'') → vierhoek1', e'', c'', w'', d''
  82. Sequence(Translate[l12, Vector[(nn * Vector[O, A''])]], nn, -3, 3) → l13
  83. Sequence(Translate[l13, Vector[(nn * Vector[O, B])]], nn, -3, 3) → l14