等腰三角形镶嵌:用旋转与反射拼出规律平面

等腰三角形镶嵌:用旋转与反射拼出规律平面
几何画板及绘图内容加载中,请稍等……
2021-01-06 07:55
本范例通过动画演示如何用等腰三角形在平面上进行重复铺砌(tessellation),形成具有连续拼接规律的图案。核心数学概念包括等腰三角形的几何性质、对称变换(反射与旋转)、以及由角平分/垂直方向信息确定构造点的位置。作图要点:从构造摘要可见,使用 LineBisector 构造线段的角平分/对称相关的直线,结合 Point、Vector、OrthogonalVector 生成方向与法向信息;再用 PointIn、Intersect 计算候选点的落点与交点;随后用 Translate、Rotate 完成平移与旋转变换以复制单元;最后用 Polygon 连接关键点形成 poly1、poly2、poly3 等多边形并堆叠得到镶嵌效果。适合中学至大学的几何作图课、对称与变换教学,也可用于数学可视化与建模的课堂演示或自学。

GeoGebra 命令及参数

  1. LineBisector(A, B) → f
  2. Point(f) → C
  3. Vector(B, C) → u
  4. OrthogonalVector(u) → v
  5. PointIn(Polygon[B + v, C + v, C - v, B - v]) → D
  6. PointIn(Polygon[B + v, C + v, C - v, B - v]) → E
  7. PointIn(Polygon[B + v, C + v, C - v, B - v]) → F
  8. PointIn(Polygon[B + v, C + v, C - v, B - v]) → G
  9. Intersect(Segment[A, B], f) → H
  10. LineBisector(H, C) → g
  11. Vector(H, A) → w
  12. Translate(Mirror[D, g], w) → I
  13. Translate(Mirror[E, g], w) → J
  14. Translate(Mirror[F, g], w) → K
  15. Translate(Mirror[G, g], w) → L
  16. PointIn(Circle[H, A]) → M
  17. PointIn(Circle[H, A]) → N
  18. Rotate(M, 180°, H) → M'
  19. Rotate(N, 180°, H) → N'
  20. Polygon(A, M, C, I, J, K, L, N, N', M', B, D, E, F, G) → poly1, a, g_1, c, i, j, k, l, m, n, n', m', b, d, e, f_1
  21. Translate(Polygon[Mirror[A, g], Mirror[M, g], Mirror[N, g], Mirror[N', g], Mirror[M', g], Mirror[B, g], Mirror[D, g], Mirror[E, g], Mirror[F, g], Mirror[G, g], Mirror[C, g], Mirror[I, g], Mirror[J, g], Mirror[K, g], Mirror[L, g]], w) → poly2
  22. Translate(Polygon[Mirror[A, g], Mirror[M, g], Mirror[N, g], Mirror[N', g], Mirror[M', g], Mirror[B, g], Mirror[D, g], Mirror[E, g], Mirror[F, g], Mirror[G, g], Mirror[C, g], Mirror[I, g], Mirror[J, g], Mirror[K, g], Mirror[L, g]], Vector[(-w)]) → poly3
  23. Translate(A, Vector[(2 * w)]) → A'
  24. Translate(M, Vector[(2 * w)]) → M'_1
  25. Translate(N, Vector[(2 * w)]) → N'_1
  26. Translate(N', Vector[(2 * w)]) → N''
  27. Translate(M', Vector[(2 * w)]) → M''
  28. Translate(B, Vector[(2 * w)]) → B'
  29. Translate(D, Vector[(2 * w)]) → D'
  30. Translate(E, Vector[(2 * w)]) → E'
  31. Translate(F, Vector[(2 * w)]) → F'
  32. Translate(G, Vector[(2 * w)]) → G'
  33. Translate(C, Vector[(2 * w)]) → C'
  34. Translate(I, Vector[(2 * w)]) → I'
  35. Translate(J, Vector[(2 * w)]) → J'
  36. Translate(K, Vector[(2 * w)]) → K'
  37. Translate(L, Vector[(2 * w)]) → L'
  38. Polygon(A', M'_1, C', I', J', K', L', N'_1, N'', M'', B', D', E', F', G') → poly1', a', g', c', i', j', k', l', m'_1, n'_1, n'', m'', b', d', e', f'
  39. Translate(A, Vector[(-2 * w)]) → A'_1
  40. Translate(M, Vector[(-2 * w)]) → M'_2
  41. Translate(N, Vector[(-2 * w)]) → N'_2
  42. Translate(N', Vector[(-2 * w)]) → N''_1
  43. Translate(M', Vector[(-2 * w)]) → M''_1
  44. Translate(B, Vector[(-2 * w)]) → B'_1
  45. Translate(D, Vector[(-2 * w)]) → D'_1
  46. Translate(E, Vector[(-2 * w)]) → E'_1
  47. Translate(F, Vector[(-2 * w)]) → F'_1
  48. Translate(G, Vector[(-2 * w)]) → G'_1
  49. Translate(C, Vector[(-2 * w)]) → C'_1
  50. Translate(I, Vector[(-2 * w)]) → I'_1
  51. Translate(J, Vector[(-2 * w)]) → J'_1
  52. Translate(K, Vector[(-2 * w)]) → K'_1
  53. Translate(L, Vector[(-2 * w)]) → L'_1
  54. Polygon(A'_1, M'_2, C'_1, I'_1, J'_1, K'_1, L'_1, N'_2, N''_1, M''_1, B'_1, D'_1, E'_1, F'_1, G'_1) → poly1'_1, a'_1, g'_1, c'_1, i'_1, j'_1, k'_1, l'_1, m'_2, n'_2, n''_1, m''_1, b'_1, d'_1, e'_1, f'_1
  55. Rotate(A, 180°, H) → A'_2
  56. Rotate(M, 180°, H) → M'_3
  57. Rotate(N, 180°, H) → N'_3
  58. Rotate(N', 180°, H) → N''_2
  59. Rotate(M', 180°, H) → M''_2
  60. Rotate(B, 180°, H) → B'_2
  61. Rotate(D, 180°, H) → D'_2
  62. Rotate(E, 180°, H) → E'_2
  63. Rotate(F, 180°, H) → F'_2
  64. Rotate(G, 180°, H) → G'_2
  65. Rotate(C, 180°, H) → C'_2
  66. Rotate(I, 180°, H) → I'_2
  67. Rotate(J, 180°, H) → J'_2
  68. Rotate(K, 180°, H) → K'_2
  69. Rotate(L, 180°, H) → L'_2
  70. Polygon(A'_2, M'_3, C'_2, I'_2, J'_2, K'_2, L'_2, N'_3, N''_2, M''_2, B'_2, D'_2, E'_2, F'_2, G'_2) → poly1'_2, a'_2, g'_2, c'_2, i'_2, j'_2, k'_2, l'_2, m'_3, n'_3, n''_2, m''_2, b'_2, d'_2, e'_2, f'_2
  71. Translate(g, Vector[C, H]) → g'_3
  72. Translate(Polygon[Mirror[A'_2, g'_3], Mirror[M'_3, g'_3], Mirror[N'_3, g'_3], Mirror[N''_2, g'_3], Mirror[M''_2, g'_3], Mirror[B'_2, g'_3], Mirror[D'_2, g'_3], Mirror[E'_2, g'_3], Mirror[F'_2, g'_3], Mirror[G'_2, g'_3], Mirror[C'_2, g'_3], Mirror[I'_2, g'_3], Mirror[J'_2, g'_3], Mirror[K'_2, g'_3], Mirror[L'_2, g'_3]], Vector[(-w)]) → poly4
  73. Translate(A'_2, Vector[(2 * w)]) → O
  74. Translate(M'_3, Vector[(2 * w)]) → P
  75. Translate(N'_3, Vector[(2 * w)]) → Q
  76. Translate(N''_2, Vector[(2 * w)]) → R
  77. Translate(M''_2, Vector[(2 * w)]) → S
  78. Translate(B'_2, Vector[(2 * w)]) → T
  79. Translate(D'_2, Vector[(2 * w)]) → U
  80. Translate(E'_2, Vector[(2 * w)]) → V
  81. Translate(F'_2, Vector[(2 * w)]) → W
  82. Translate(G'_2, Vector[(2 * w)]) → Z
  83. Translate(C'_2, Vector[(2 * w)]) → A_1
  84. Translate(I'_2, Vector[(2 * w)]) → B_1
  85. Translate(J'_2, Vector[(2 * w)]) → C_1
  86. Translate(K'_2, Vector[(2 * w)]) → D_1
  87. Translate(L'_2, Vector[(2 * w)]) → E_1
  88. Polygon(O, P, A_1, B_1, C_1, D_1, E_1, Q, R, S, T, U, V, W, Z) → poly5, o, z_1, a_1, b_1, c_1, d_1, e_1, p, q, r, s, t, u_1, v_1, w_1
  89. Translate(A'_2, Vector[(-2 * w)]) → F_1
  90. Translate(M'_3, Vector[(-2 * w)]) → G_1
  91. Translate(N'_3, Vector[(-2 * w)]) → H_1
  92. Translate(N''_2, Vector[(-2 * w)]) → I_1
  93. Translate(M''_2, Vector[(-2 * w)]) → J_1
  94. Translate(B'_2, Vector[(-2 * w)]) → K_1
  95. Translate(D'_2, Vector[(-2 * w)]) → L_1
  96. Translate(E'_2, Vector[(-2 * w)]) → M_1
  97. Translate(F'_2, Vector[(-2 * w)]) → N_1
  98. Translate(G'_2, Vector[(-2 * w)]) → O_1
  99. Translate(C'_2, Vector[(-2 * w)]) → P_1
  100. Translate(I'_2, Vector[(-2 * w)]) → Q_1
  101. Translate(J'_2, Vector[(-2 * w)]) → R_1
  102. Translate(K'_2, Vector[(-2 * w)]) → S_1
  103. Translate(L'_2, Vector[(-2 * w)]) → T_1
  104. Polygon(F_1, G_1, P_1, Q_1, R_1, S_1, T_1, H_1, I_1, J_1, K_1, L_1, M_1, N_1, O_1) → poly6, h, o_1, q_1, r_1, s_1, t_1, f_2, h_1, i_1, j_1, k_1, l_1, m_1, n_1, p_1
  105. Translate(poly4, Vector[(2 * w)]) → poly4'
  106. Translate(Mirror[H, g], w) → U_1
  107. Rotate(poly2, 180°, U_1) → poly2'
  108. Translate(g, Vector[H, C]) → g'_4
  109. Translate(Mirror[poly2', g'_4], Vector[(-w)]) → poly7
  110. Translate(poly2', Vector[(-2 * w)]) → poly2''

AI 绘图提示语参考

在平面上先作一条以两点为端点的线段,并以该线段的对称轴信息构造出与其相关的角平分线:取线段端点对应的对称线并取其与线段的交点,再以交点与第三点构造另一条平分线。以交点为中心做旋转所需的参考点:在以中心到端点为半径的圆上取两点。用由交点指向端点的方向及其垂直方向,生成一个以四边形为母体的候选顶点集合,随后把端点、圆上两点、以及镜像生成的一组对称位置点组合成若干个等腰三角形拼接的多边形单元。最后把该单元沿由方向向量确定的平移方向成排复制,得到包含旋转对称与反射对称的等腰三角形镶嵌效果。
以上提示语为根据原始绘图命令整理而来,仅供参考。