双块旋转镶嵌:两类等价瓦片的对称铺设

双块旋转镶嵌:两类等价瓦片的对称铺设
几何画板及绘图内容加载中,请稍等……
2021-01-14 03:45
该范例演示如何用两种“瓦片”通过旋转与平移在平面上形成循环镶嵌图案,并展示旋转拼接下的角度与边界的一致性。核心数学概念包括旋转对称、全等(同余)关系、向量几何与几何构造中的点的生成,以及在拼接过程中保持形状不变的变换逻辑。作图要点:利用 GeoGebra 的 Polygon 创建两类多边形瓦片(如 poly1、poly2),用 Vector 与 PointIn 确定与参数相关的点位置与落点集合;通过 Rotate 和 Translate 对已有瓦片进行旋转与平移,配合 Sequence 生成迭代/序列步骤,从而得到一系列重复但相互匹配的拼接对象(如 A、B、C、D 及其衍生点 u、v、j、k、l、m 等);同时保留与图形几何约束相关的辅助对象(如 f、g、h、i 等)以实现稳定的拼接效果。适合中学高年级到大学的几何变换与作图课程,用于课堂演示、竞赛备课或GeoGebra建模练习,帮助学生直观理解旋转镶嵌与同余结构。

GeoGebra 命令及参数

  1. Polygon(A, B, 4) → poly1, f, g, h, i, C, D
  2. Vector(B, C) → u
  3. PointIn(Polygon[A + u, A - u, B - u, B + u]) → G
  4. Rotate(G, 180°, A) → G''
  5. PointIn(Polygon[A + u, A - u, B - u, B + u]) → H
  6. PointIn(Polygon[A + u, A - u, B - u, B + u]) → I
  7. PointIn(Polygon[C + u, C - u, D - u, D + u]) → P
  8. PointIn(Polygon[C + u, C - u, D - u, D + u]) → Q
  9. PointIn(Polygon[C + u, C - u, D - u, D + u]) → R
  10. PointIn(Circle[B, f]) → S
  11. PointIn(Circle[D, f]) → T
  12. Vector(B, A) → v
  13. PointIn(Polygon[B + v, B - v, C - v, C + v]) → J
  14. PointIn(Polygon[B + v, B - v, C - v, C + v]) → K
  15. PointIn(Polygon[B + v, B - v, C - v, C + v]) → L
  16. Rotate(L, 180°, C) → L''
  17. PointIn(Polygon[A + v, A - v, D - v, D + v]) → M
  18. PointIn(Polygon[A + v, A - v, D - v, D + v]) → N
  19. PointIn(Polygon[A + v, A - v, D - v, D + v]) → O
  20. Polygon(B, A, 4) → poly2, j, k, l, m, E, F
  21. Rotate(L, 180°, B) → L'
  22. Rotate(K, 180°, B) → K'
  23. Rotate(J, 180°, B) → J'
  24. Rotate(M, 180°, A) → M'
  25. Rotate(N, 180°, A) → N'
  26. Rotate(O, 180°, A) → O'
  27. Translate(P, Vector[(-2 * u)]) → P'
  28. Translate(Q, Vector[(-2 * u)]) → Q'
  29. Translate(R, Vector[(-2 * u)]) → R'
  30. Rotate(S, 180°, B) → S'
  31. Polygon(S, J, N, M, G'', G, H, I, K, L, L'', R, Q, P, T, O) → poly3, n, d, e, f_1, g_1, h_1, i_1, j_1, p, q, r, s, t, a, b, c
  32. Rotate(T, 180°, A) → T'
  33. Translate(T, Vector[(-2 * u)]) → T'_1
  34. Polygon(T', T'_1, I, H, G, M', N', O', P', Q', R', L', K', J', S', S) → poly4, t', s_1, i_2, h_2, g_2, m', n', o', t'_1, p', q', r', l', k', j', s'
  35. Rotate(T', 180°, B) → T''
  36. Rotate(T'_1, 180°, B) → U
  37. Rotate(P', 180°, B) → P''
  38. Rotate(Q', 180°, B) → Q''
  39. Rotate(R', 180°, B) → R''
  40. Rotate(L', 180°, B) → L''_2
  41. Rotate(K', 180°, B) → K''
  42. Rotate(J', 180°, B) → J''
  43. Rotate(S', 180°, B) → S''
  44. Rotate(S, 180°, B) → S'_1
  45. Rotate(I, 180°, B) → I'
  46. Rotate(H, 180°, B) → H'
  47. Rotate(G, 180°, B) → G'
  48. Rotate(M', 180°, B) → M''
  49. Rotate(N', 180°, B) → N''
  50. Rotate(O', 180°, B) → O''
  51. Polygon(T'', U, I', H', G', M'', N'', O'', P'', Q'', R'', L''_2, K'', J'', S'', S'_1) → poly4', t'', s'_1, i', h', g', m'', n'', o'', u_1, p'', q'', r'', l'', k'', j'', s''
  52. Rotate(T', 180°, A) → T''_1
  53. Rotate(G, 180°, A) → G'_1
  54. Rotate(S, 180°, B) → S'_2
  55. Rotate(J, 180°, B) → J'_1
  56. Rotate(K, 180°, B) → K'_1
  57. Rotate(L, 180°, B) → L'_1
  58. Rotate(L'', 180°, B) → L'''_1
  59. Rotate(R, 180°, B) → R'_1
  60. Rotate(Q, 180°, B) → Q'_1
  61. Rotate(P, 180°, B) → P'_3
  62. Rotate(T, 180°, B) → T'_4
  63. Rotate(O, 180°, B) → O'_3
  64. Rotate(N, 180°, B) → N'_3
  65. Rotate(M, 180°, B) → M'_3
  66. Rotate(G'', 180°, B) → G'''
  67. Rotate(G, 180°, B) → G'_4
  68. Rotate(H, 180°, B) → H'_1
  69. Rotate(I, 180°, B) → I'_1
  70. Polygon(S'_2, J'_1, N'_3, M'_3, G''', G'_4, H'_1, I'_1, K'_1, L'_1, L'''_1, R'_1, Q'_1, P'_3, T'_4, O'_3) → poly3', s'_2, o'_3, n'_3, m'_3, g''', g'_4, h'_1, i'_1, j'_1, k'_1, l'_1, l'''_1, r'_1, q'_1, p'_3, t'_4
  71. Sequence(Sequence[Polygon[Translate[S, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[T, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I, Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l1
  72. Sequence(Sequence[Polygon[Translate[S'_2, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L'''_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[T'_4, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M'_3, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G''', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G'_4, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I'_1, Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l2
  73. Sequence(Sequence[Polygon[Translate[T'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[U, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L''_2, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N'', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O'', Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l3
  74. Sequence(Sequence[Polygon[Translate[T', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[T'_1, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[P', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[Q', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[R', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[L', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[K', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[J', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[S, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[I, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[H, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[G, Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[M', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[N', Vector[((i * 2) * u) + ((j * 2) * v)]], Translate[O', Vector[((i * 2) * u) + ((j * 2) * v)]]], i, (-w), w], j, (-w), w) → l4

AI 绘图提示语参考

绘制一个由两种全等四边形瓷砖构成的平面密铺图案。先构造两个相邻的正方形作为基础瓷砖,其中一个旋转180度后与另一个匹配。通过平移和旋转复制这些瓷砖,使它们沿水平和斜向方向交错排列,形成连续且边角对齐的重复图案。在瓷砖内部及边界上选取若干关键点,并围绕顶点进行对称旋转,生成匹配的边线点集。最终用这些点围合出两个互补的复杂多边形区域,它们共同无缝覆盖平面,展示旋转与平移组合下的对称密铺效果。
以上提示语为根据原始绘图命令整理而来,仅供参考。