Viviani定理的面积证明

Viviani定理的面积证明
几何画板及绘图内容加载中,请稍等……
2020-01-02 04:41
①本范例通过面积法直观演示了Viviani定理:在任意三角形内一点到三边的距离之和等于该点为顶点的三个小三角形的面积之和;②涉及核心概念包括三角形面积、距离、向量、坐标几何;③构造要点:使用Line, Point, Circle, Polygon, Vector, Segment, Midpoint, Translate, Rotate等命令绘制图形并计算面积;④适合高中及以上学生及数学爱好者学习几何证明与可视化方法。

GeoGebra 命令及参数

  1. Line(A, B) → m
  2. Point(m) → I
  3. OrthogonalLine(I, m) → p
  4. Circle(A, B) → c
  5. LineBisector(A, B) → f
  6. Intersect(c, f) → C, D
  7. Line(D, m) → n
  8. Polygon(D, B, A) → t1, a, d, b
  9. Point(d) → G
  10. OrthogonalLine(G, d) → g
  11. Point(b) → F
  12. OrthogonalLine(F, b) → h
  13. Intersect(h, g) → P
  14. Line(P, n) → q
  15. Intersect(p, q) → K
  16. OrthogonalLine(P, a) → i
  17. Intersect(i, a) → H
  18. Circle(K, Distance[P, H]) → e
  19. Intersect(e, p) → L, M
  20. Vector(P, M) → v_1
  21. Segment(H, P) → j
  22. Segment(F, P) → k
  23. Segment(P, G) → l
  24. Intersect(n, p) → J
  25. Segment(D, J) → r
  26. Segment(B, I) → s
  27. Segment(I, K) → t
  28. Midpoint(l) → E
  29. Midpoint(K, I) → N
  30. Vector(E, N) → u
  31. Vector(H, M) → v
  32. Vector(P, K) → w
  33. Vector(F, J) → u_1
  34. Segment(Translate[P, Vector[(Animation / 10 * u)]], Translate[G, Vector[(Animation / 10 * u)]]) → i'
  35. Translate(P, Vector[(Animation / 10 * w)]) → P'
  36. Translate(H, Vector[(Animation / 10 * v)]) → H'
  37. Translate(F, Vector[(Animation / 10 * u_1)]) → F'
  38. Translate(P, Vector[(Animation / 10 * v_1)]) → P'_1
  39. Segment(H', P') → g_1
  40. Segment(F', P'_1) → f_1
  41. Segment(J, I) → h_1
  42. Angle(A, F, P) → α
  43. Angle(P, H, B) → β
  44. Angle(P, G, A) → γ
  45. Polygon(D, P, B) → t2, b_1, d_1, p_1
  46. Polygon(D, P, A) → t3, a_1, d_2, p_2
  47. Polygon(A, P, B) → t4, b_2, a_2, p_3
  48. Vector(A, O) → w_1
  49. Translate(D, Vector[(Animation / 10 * w_1)]) → D'
  50. Translate(B, Vector[(Animation / 10 * w_1)]) → B'
  51. Translate(A, Vector[(Animation / 10 * w_1)]) → A'
  52. Polygon(D', B', A') → t1', a', d', b'
  53. Translate(A, Vector[(Animation / 10 * w_1)]) → A'_1
  54. Translate(P, Vector[(Animation / 10 * w_1)]) → P'_2
  55. Vector(A, H_1) → c_1
  56. Translate(B, Vector[(Animation / 10 * w_1)]) → B'_1
  57. Translate(A, Vector[(Animation / 10 * c_1)]) → A'_2
  58. Translate(P, Vector[(Animation / 10 * c_1)]) → P'_3
  59. Translate(B, Vector[(Animation / 10 * c_1)]) → B'_2
  60. Polygon(A'_2, P'_3, B'_2) → t4', b'_2, a'_2, p'_3
  61. Segment(Translate[P, Vector[(Animation / 10 * c_1)]], Translate[G, Vector[(Animation / 10 * c_1)]]) → i_1
  62. Vector(D, B'_2) → e_1
  63. Translate(D, Vector[(Animation / 10 * e_1)]) → D'_1
  64. Translate(P, Vector[(Animation / 10 * e_1)]) → P'_4
  65. Translate(A, Vector[(Animation / 10 * e_1)]) → A'_3
  66. Rotate(D, Animation, D) → D'_2
  67. Rotate(P, Animation, D) → P'_5
  68. Rotate(A, Animation, D) → A'_4
  69. Rotate(D, If[Animation < 8.38, Animation / 10, 8.38], D) → D'_3
  70. Rotate(P, If[Animation < 8.38, Animation / 10, 8.38], D) → P'_6
  71. Rotate(A, If[Animation < 8.38, Animation / 10, 8.38], D) → A'_5
  72. Polygon(D'_3, P'_6, A'_5) → t3'_1, a'_5, d'_3, p'_6
  73. Translate(D'_3, Vector[(Animation / 10 * e_1)]) → Q
  74. Translate(P'_6, Vector[(Animation / 10 * e_1)]) → R
  75. Translate(A'_5, Vector[(Animation / 10 * e_1)]) → S
  76. Polygon(Q, R, S) → t5, s_1, q_1, r_1
  77. Rotate(D, Animation, B) → D'_4
  78. Rotate(P, Animation, B) → P'_7
  79. Rotate(B, Animation, B) → B'_3
  80. Rotate(D, If[Animation < 4.18, Animation / 10, 4.18], B) → D'_5
  81. Rotate(P, If[Animation < 4.18, Animation / 10, 4.18], B) → P'_8
  82. Rotate(B, If[Animation < 4.18, Animation / 10, 4.18], B) → B'_4
  83. Polygon(D'_5, P'_8, B'_4) → t2', b'_4, d'_5, p'_8
  84. Vector(B, S) → j_1
  85. Translate(D'_5, Vector[(Animation / 10 * j_1)]) → T
  86. Translate(P'_8, Vector[(Animation / 10 * j_1)]) → U
  87. Translate(B'_4, Vector[(Animation / 10 * j_1)]) → V
  88. Polygon(T, U, V) → t2'', v_2, t_1, u_2
  89. OrthogonalLine(R, r_1) → k_1
  90. OrthogonalLine(U, u_2) → l_1
  91. Intersect(k_1, r_1) → W
  92. Intersect(l_1, u_2) → Z
  93. Segment(R, W) → m_1
  94. Segment(U, Z) → n_1
  95. OrthogonalLine(D', d') → f_2
  96. Intersect(f_2, d') → A_1
  97. Segment(D', A_1) → g_2
  98. Midpoint(g_2) → B_1
  99. Midpoint(i_1) → C_1
  100. Midpoint(m_1) → D_1
  101. Intersect(p'_3, i_1) → E_1
  102. Midpoint(U, Z) → F_1
  103. Segment(D, P) → h_2
  104. Segment(P, B) → i_2
  105. Segment(P, A) → j_2