余弦定理的无字证明(几何直观演示)

余弦定理的无字证明(几何直观演示)
几何画板及绘图内容加载中,请稍等……
2018-02-16 07:13
① 本范例通过纯几何构造,以无字证明的方式直观展示余弦定理 a² = b² + c² − 2bc·cosA 的成立过程,无需代数推导即可看出面积关系。② 核心数学概念是余弦定理、勾股定理的推广、三角形边角关系以及面积恒等变换。③ 作图要点:从构造摘要可见,使用了 Intersect(交点)、CircleSector(圆扇形)、Polygon(多边形)、Midpoint(中点)、Circle(圆)、Ray(射线)、Line(直线)、Vector(向量)、Translate(平移)、OrthogonalLine(垂线)等命令,并创建了多个点、线段、多边形对象(如 poly1、poly2、poly3)以及辅助圆和扇形,通过分割与重组图形来呈现面积等式。④ 适合高中几何教学、数学证明的直观演示,也可用于师范生或数学爱好者理解定理的几何本质,作为课堂互动或自主探索的素材。

GeoGebra 命令及参数

  1. Intersect(xAxis, yAxis) → B
  2. Point(yAxis) → C
  3. Point(xAxis) → D
  4. CircleSector(B, C, D) → c
  5. PointIn(c) → A
  6. Polygon(B, A, 4) → poly3, s, t, a, b, L, M
  7. Midpoint(L, B) → T
  8. Circle(B, A) → e
  9. Intersect(e, xAxis, 2) → E
  10. Point(xAxis) → F
  11. Ray(E, F) → f
  12. Point(f) → G
  13. Polygon(G, B, 4) → poly2, n, p, q, r, J, K
  14. If(4 < d < 5, Translate[M, Vector[J, Dilate[J, 5 - d, K]]], Translate[M, Vector[J, Dilate[J, 0, K]]]) → U
  15. Line(U, xAxis) → i_1
  16. Polygon(A, G, 4) → poly1, j, k, l, m, H, I
  17. Midpoint(A, H) → S
  18. Vector(T, S) → w
  19. Translate(M, w) → M'
  20. Polygon(B, A, G) → t1, g, h, i
  21. OrthogonalLine(M', h) → h_1
  22. Intersect(i_1, h_1) → A_1
  23. Intersect(h_1, i) → Z
  24. Midpoint(B, K) → N
  25. OrthogonalLine(N, h) → f_1
  26. OrthogonalLine(N, f_1) → g_1
  27. Intersect(g_1, poly2) → O, P
  28. Intersect(f_1, poly2) → Q, R
  29. Polygon(N, P, B, R) → q1, n_1, p_1, b_1, r_1
  30. Polygon(N, R, G, O) → q2, n_2, r_2, g_2, o
  31. Polygon(N, Q, J, P) → q3, n_3, q_1, j_1, p_2
  32. Polygon(Q, N, O, K) → q4, q_2, n_4, o_1, k_1
  33. If(0 < d < 1, Polygon[Translate[Q, Vector[N, Dilate[N, 1 - d, I]]], Translate[N, Vector[N, Dilate[N, 1 - d, I]]], Translate[O, Vector[N, Dilate[N, 1 - d, I]]], Translate[K, Vector[N, Dilate[N, 1 - d, I]]]], Polygon[Translate[Q, Vector[N, Dilate[N, 0, I]]], Translate[N, Vector[N, Dilate[N, 0, I]]], Translate[O, Vector[N, Dilate[N, 0, I]]], Translate[K, Vector[N, Dilate[N, 0, I]]]]) → q5
  34. If(0 < d < 1, Polygon[Translate[N, Vector[N, Dilate[N, 1 - d, H]]], Translate[Q, Vector[N, Dilate[N, 1 - d, H]]], Translate[J, Vector[N, Dilate[N, 1 - d, H]]], Translate[P, Vector[N, Dilate[N, 1 - d, H]]]], Polygon[Translate[N, Vector[N, Dilate[N, 0, H]]], Translate[Q, Vector[N, Dilate[N, 0, H]]], Translate[J, Vector[N, Dilate[N, 0, H]]], Translate[P, Vector[N, Dilate[N, 0, H]]]]) → q6
  35. If(0 < d < 1, Polygon[Translate[N, Vector[N, Dilate[N, 1 - d, A]]], Translate[R, Vector[N, Dilate[N, 1 - d, A]]], Translate[G, Vector[N, Dilate[N, 1 - d, A]]], Translate[O, Vector[N, Dilate[N, 1 - d, A]]]], Polygon[Translate[N, Vector[N, Dilate[N, 0, A]]], Translate[R, Vector[N, Dilate[N, 0, A]]], Translate[G, Vector[N, Dilate[N, 0, A]]], Translate[O, Vector[N, Dilate[N, 0, A]]]]) → q7
  36. If(0 < d < 1, Polygon[Translate[N, Vector[N, Dilate[N, 1 - d, G]]], Translate[P, Vector[N, Dilate[N, 1 - d, G]]], Translate[B, Vector[N, Dilate[N, 1 - d, G]]], Translate[R, Vector[N, Dilate[N, 1 - d, G]]]], Polygon[Translate[N, Vector[N, Dilate[N, 0, G]]], Translate[P, Vector[N, Dilate[N, 0, G]]], Translate[B, Vector[N, Dilate[N, 0, G]]], Translate[R, Vector[N, Dilate[N, 0, G]]]]) → q8
  37. Polygon(L, M, B, A) → q9, l_1, m_1, b_2, a_1
  38. If(2 < d < 3, Polygon[Translate[L, Vector[T, Dilate[T, 3 - d, S]]], Translate[M, Vector[T, Dilate[T, 3 - d, S]]], Translate[B, Vector[T, Dilate[T, 3 - d, S]]], Translate[A, Vector[T, Dilate[T, 3 - d, S]]]], Polygon[Translate[L, Vector[T, Dilate[T, 0, S]]], Translate[M, Vector[T, Dilate[T, 0, S]]], Translate[B, Vector[T, Dilate[T, 0, S]]], Translate[A, Vector[T, Dilate[T, 0, S]]]]) → q10
  39. If(4 < d < 5, Translate[B, Vector[J, Dilate[J, 5 - d, K]]], Translate[B, Vector[J, Dilate[J, 0, K]]]) → V
  40. Polygon(M, U, V, B) → q11, m_2, u, v, b_3
  41. Translate(B, w) → B'
  42. Translate(L, w) → L'
  43. Translate(A, w) → A'
  44. Vector(N, G) → u_1
  45. Vector(N, A) → v_1
  46. Vector(N, H) → w_1
  47. Vector(N, I) → c_1
  48. Translate(Q, w_1) → Q'
  49. Translate(R, u_1) → R'
  50. Intersect(h_1, p) → W
  51. Polygon(M, A_1, Z, B) → q12, s_1, t_1, d_1, e_1
  52. Polygon(A_1, Z, G, U) → q13, f_2, h_2, i_2, j_2
  53. If(6 < d < 7, Polygon[Translate[M, Vector[B, Dilate[B, 7 - d, B']]], Translate[A_1, Vector[B, Dilate[B, 7 - d, B']]], Translate[Z, Vector[B, Dilate[B, 7 - d, B']]], Translate[B, Vector[B, Dilate[B, 7 - d, B']]]], Polygon[Translate[M, Vector[B, Dilate[B, 0, B']]], Translate[A_1, Vector[B, Dilate[B, 0, B']]], Translate[Z, Vector[B, Dilate[B, 0, B']]], Translate[B, Vector[B, Dilate[B, 0, B']]]]) → q14
  54. If(6 < d < 7, Polygon[Translate[A_1, Vector[G, Dilate[G, 7 - d, A']]], Translate[Z, Vector[G, Dilate[G, 7 - d, A']]], Translate[G, Vector[G, Dilate[G, 7 - d, A']]], Translate[U, Vector[G, Dilate[G, 7 - d, A']]]], Polygon[Translate[A_1, Vector[G, Dilate[G, 0, A']]], Translate[Z, Vector[G, Dilate[G, 0, A']]], Translate[G, Vector[G, Dilate[G, 0, A']]], Translate[U, Vector[G, Dilate[G, 0, A']]]]) → q15
  55. If(6 < d < 7, Rotate[Polygon[Translate[M, Vector[B, Dilate[B, 7 - d, M']]], Translate[A_1, Vector[B, Dilate[B, 7 - d, M']]], Translate[Z, Vector[B, Dilate[B, 7 - d, M']]], Translate[B, Vector[B, Dilate[B, 7 - d, M']]]], ((-(d - 6)) * π / 2), M'], Rotate[Polygon[Translate[M, Vector[B, Dilate[B, 0, M']]], Translate[A_1, Vector[B, Dilate[B, 0, M']]], Translate[Z, Vector[B, Dilate[B, 0, M']]], Translate[B, Vector[B, Dilate[B, 0, M']]]], ((-π)) / 2, M']) → q16
  56. If(6 < d < 7, Rotate[Polygon[Translate[A_1, Vector[G, Dilate[G, 7 - d, B']]], Translate[Z, Vector[G, Dilate[G, 7 - d, B']]], Translate[G, Vector[G, Dilate[G, 7 - d, B']]], Translate[U, Vector[G, Dilate[G, 7 - d, B']]]], ((-(d - 6)) * π / 2), B'], Rotate[Polygon[Translate[A_1, Vector[G, Dilate[G, 0, B']]], Translate[Z, Vector[G, Dilate[G, 0, B']]], Translate[G, Vector[G, Dilate[G, 0, B']]], Translate[U, Vector[G, Dilate[G, 0, B']]]], ((-π)) / 2, B']) → q17
  57. Circle(B, Segment[Q', B']) → c_2
  58. Circle(U, Radius[c_2]) → d_2