七声音阶的几何构造:音乐与数学的对话

七声音阶的几何构造:音乐与数学的对话
几何画板及绘图内容加载中,请稍等……
2023-03-31 20:11
所属专题 Música y Matemáticas
① 本范例通过GeoGebra动态几何环境,演示了如何利用几何作图方法构造自然大调七声音阶(diatonic scale),将音乐中的音程比例转化为可视化的几何图形。② 核心数学概念包括比例与分数(如纯五度3:2、纯四度4:3)、数列与级数(音阶频率的等比关系)、对称与旋转(音程在圆上的分布)、以及线性规划思想(在有限区间内分配音程)。③ 作图要点:从构造摘要可见,使用了Vector(向量)、OrthogonalLine(垂线)、Point(点)、Intersect(交点)、Segment(线段)、Line(直线)、Midpoint(中点)、Sequence(序列)、Text(文本)、Translate(平移)等命令,涉及对象包括t1、t2、t3等辅助线,以及D_7至J_7等音名标记点,通过几何比例关系逐步生成各音级位置。④ 适合中学高年级至大学低年级学生,用于跨学科项目(音乐+数学),也可用于数学教师展示比例、数列与几何作图的综合应用,或音乐理论课程中直观理解音程的数学本质。

GeoGebra 命令及参数

  1. Vector(D_7 + C_7 - D_7, E_8) → w
  2. Vector(G_7, H_8) → w'
  3. OrthogonalLine(B, xAxis) → f
  4. OrthogonalLine(B, f) → g
  5. Point(g) → C
  6. OrthogonalLine(C, g) → h
  7. OrthogonalLine(B1, f) → i
  8. Intersect(h, i) → D
  9. Point(f) → E
  10. Segment(B, E) → j
  11. Point(h) → F
  12. Line(F, g) → k
  13. Midpoint(B, C) → G
  14. OrthogonalLine(G, g) → l
  15. OrthogonalLine(E, l) → m
  16. Intersect(l, m) → H
  17. Intersect(l, k) → I
  18. Segment(I, H) → n
  19. Point(f) → L
  20. OrthogonalLine(L, h) → p
  21. Intersect(h, p) → M
  22. Segment(L, M) → q
  23. OrthogonalLine(N, h) → r
  24. OrthogonalLine(P, m) → s
  25. Intersect(m, s) → R
  26. Segment(P, R) → t
  27. OrthogonalLine(S, h) → a
  28. Intersect(f, a) → T
  29. Point(f) → W
  30. OrthogonalLine(W, h) → b
  31. Intersect(s, b) → Z
  32. Intersect(l, b) → C_1
  33. OrthogonalLine(E_1, h) → c
  34. Intersect(c, h) → F_1
  35. Point(h) → I_1
  36. OrthogonalLine(I_1, h) → d
  37. Line(J_1, h) → e
  38. Intersect(e, m) → M_1
  39. Segment(J_1, M_1) → f_1
  40. OrthogonalLine(N_1, h) → g_1
  41. Intersect(g_1, f) → O_1
  42. Intersect(g_1, l) → P_1
  43. Intersect(e, p) → Q_1
  44. Intersect(s, p) → R_1
  45. Intersect(l, p) → S_1
  46. Point(h) → T_1
  47. OrthogonalLine(T_1, h) → h_1
  48. OrthogonalLine(W_1, h) → j_1
  49. Segment(Z_1, R) → i_1
  50. Segment(B_2, H) → k_1
  51. Sequence(Polygon[(x(W_1) - (abs(Z_1 - W_1) * (2 / 3)^(k)), y(W_1) - ((k * an) + (k * bn))), (x(W_1), y(W_1) - ((k * an) + (k * bn))), (x(W_1), y(W_1) - ((k * an) + an + (k * bn))), (x(W_1) - (abs(Z_1 - W_1) * (2 / 3)^(k)), y(W_1) - ((k * an) + an + (k * bn)))], k, 1, 11) → l13
  52. Sequence(Polygon[(x(C_2) - (abs(B_2 - C_2) * (1 / 2)^(k)), y(C_2) - ((k * an) + (k * bn))), (x(C_2), y(C_2) - ((k * an) + (k * bn))), (x(C_2), y(C_2) - ((k * an) + an + (k * bn))), (x(C_2) - (abs(B_2 - C_2) * (1 / 2)^(k)), y(C_2) - ((k * an) + an + (k * bn)))], k, 1, 6) → l15
  53. Sequence((x(C_2) - (abs(B_2 - C_2) * (1 / 2)^(k)), y(C_2) - ((k * an) + (k * bn))), k, 1, 6) → l14
  54. Sequence((x(C_2) - (abs(B_2 - C_2) * (1 / 2)^(k)), y(L)), k, 1, 6) → l16
  55. Sequence(Segment[l14(k), l16(k)], k, 1, 5) → l17
  56. Segment(F_2, l16(6)) → l_1
  57. Segment(E_2, F_2) → m_1
  58. Segment(G_2, I_2) → n_1
  59. Segment(J_2, H) → p_1
  60. Segment(M_2, R) → q_1
  61. Segment(O_2, M_1) → r_1
  62. Segment(P_2, R_2) → s_1
  63. Segment(T_2, U_2) → t_1
  64. Segment(W_2, Z_2) → a_1
  65. Segment(B_3, C_3) → b_1
  66. Midpoint(W_2, V_2) → D_3
  67. Segment(D_3 + (0, bn), D_3 - (0, an + bn)) → c_1
  68. Text(texto45, Pos1 + N_3 - L_3) → texto46
  69. Text(texto45, Pos1 + P_3 - L_3) → texto47
  70. Text(texto45, Pos1 + Q_3 - L_3) → texto48
  71. Text(texto45, Pos1 + R_3 - L_3) → texto49
  72. Midpoint(H_4, N_2) → L_4
  73. Midpoint(L_4, N_2) → M_4
  74. Midpoint(M_4, N_2) → N_4
  75. Segment(O_4, R_4) → g_2
  76. Segment(P_4, S_4) → h_2
  77. Segment(Q_4, T_4) → i_2
  78. Midpoint(W_3, E_4) → U_4
  79. Midpoint(U_4, E_4) → V_4
  80. Midpoint(V_4, E_4) → W_4
  81. Midpoint(V_3, D_4) → F_5
  82. Midpoint(F_5, D_4) → G_5
  83. Midpoint(G_5, D_4) → H_5
  84. Midpoint(T_3, C_4) → O_5
  85. Midpoint(O_5, C_4) → P_5
  86. Midpoint(P_5, C_4) → Q_5
  87. Segment(H_4, (x(H_4), y(E))) → f_2
  88. Midpoint(Z_3, F_4) → Z_5
  89. Midpoint(Z_5, F_4) → A_6
  90. Midpoint(A_6, F_4) → B_6
  91. Midpoint(U_3, K_2) → I_6
  92. Midpoint(I_6, K_2) → J_6
  93. Midpoint(J_6, K_2) → K_6
  94. Midpoint(A_4, G_4) → R_6
  95. Midpoint(R_6, G_4) → S_6
  96. Midpoint(S_6, G_4) → T_6
  97. Translate(l57, C_7 - D_7) → l57'
  98. Translate(l55, C_7 - D_7) → l55'
  99. Translate(l56, C_7 - D_7) → l56'
  100. Translate(l58, C_7 - D_7) → l58'
  101. Translate(l55, T_7 - D_7) → l55'_{1}
  102. Translate(l56, T_7 - D_7) → l56'_{1}
  103. Translate(l58, T_7 - D_7) → l58'_{1}
  104. Translate(l57, T_7 - D_7) → l57'_{1}
  105. Translate(l59, Vector[(t1 * v)]) → l59'
  106. Translate(l60, Vector[(t1 * v)]) → l60'
  107. Translate(l59, v) → l59'_{1}
  108. Segment(V_7 + v, U_7 + v) → d_1
  109. Translate(l60, v) → l60'_{1}
  110. Segment(A_8 + v, B_8 + v) → e_1
  111. Translate(l55, T_7 - D_7 + (u, 0)) → l55'_{2}
  112. Translate(l56, T_7 - D_7 + (u, 0)) → l56'_{2}
  113. Translate(l58, T_7 - D_7 + (u, 0)) → l58'_{2}
  114. Translate(l57, T_7 - D_7 + (u, 0)) → l57'_{2}
  115. Translate(l58, T_7 - D_7 + (u, 0)) → l58'_{3}
  116. Translate(l58'_{3}, Vector[(t1 * v)]) → l61
  117. Translate(l58'_{3}, v) → l62
  118. Segment(I_7 - ((u * kk), 0), I_7 - ((u * kk), 0) + K_7 - D_7) → j_2
  119. Segment(G_8, K_7 + G_8 - D_7) → k_2
  120. Translate(l56, T_7 - D_7 + ((2 * u), 0)) → l56'_{3}
  121. Translate(l55, T_7 - D_7 + ((2 * u), 0)) → l55'_{3}
  122. Translate(l58, T_7 - D_7 + ((2 * u), 0)) → l58'_{4}
  123. Translate(l57, T_7 - D_7 + ((2 * u), 0)) → l57'_{3}
  124. Translate({l58(1)}, T_7 - D_7 + ((2 * u), 0)) → l58'_{5}
  125. Translate(l58'_{5}, Vector[(t1 * v)]) → l63
  126. Translate(l58'_{5}, v) → l64
  127. Segment(I_7 - ((u * kk), 0) + (u, 0), I_7 - ((u * kk), 0) + (u, 0) + K_7 - D_7) → l_2
  128. Translate(l55', Vector[(t1 * w)]) → l55''
  129. Translate(l60'_{1}, Vector[(t1 * w)]) → l65
  130. Translate({l62(2)}, Vector[(t1 * w)]) → l66
  131. Translate({l58'(1)}, Vector[(t1 * w)]) → l67
  132. Translate(l56, Vector[(t2 * w')]) → l56'_{4}
  133. Translate(l59'_{1}, Vector[(t2 * w')]) → l69
  134. Translate({l62(1)}, Vector[(t2 * w')]) → l70
  135. Translate(l64, Vector[(t2 * w')]) → l64'
  136. Translate({l58(2)}, Vector[(t2 * w')]) → l71
  137. Translate(l74, C_7 - D_7 + ((3 * u) + (u * kk), 0)) → l74'
  138. Segment(PosFinal + (inc, 0) + (0, 1.65), PosFinal + (inc, 0) - (0, 3.8)) → n_2
  139. Segment(PosFinal + (inc, 0) + ((2 * u) - (u * kk), 1.65), PosFinal + ((2 * u) + inc - (u * kk), 0) - (0, 3.8)) → n_2'

AI 绘图提示语参考

绘制一个将音乐大调音阶转化为几何图形的构造过程。首先在平面上标记出代表音阶音符D到J的若干点,形成基本框架。通过向量平移和正交线辅助,逐步构建纯五度和纯四度的几何比例关系。引入中点、平行线和交点命令,生成一系列辅助线和交点,形成层层递进的几何网格。在关键位置添加文本标注,显示音程关系如3:2和4:3的比率。最后通过线段连接相关点,展现音阶在几何空间中的对称分布和数学美感。
以上提示语为根据原始绘图命令整理而来,仅供参考。