Viviani Theorem Proof by Areas

Viviani Theorem Proof by Areas
Loading the math board and drawing, please wait…
2020-01-02 04:41
This example visually demonstrates Viviani's theorem using area calculations: the sum of distances from any interior point to the sides of a triangle equals the sum of the areas of the three triangles formed with the point as a vertex. Key concepts include triangle area, distance, vectors, and coordinate geometry. Construction involves commands like Line, Point, Circle, Polygon, Vector, Segment, Midpoint, Translate, Rotate. Suitable for high school students and math enthusiasts exploring geometric proofs and visualizations.

GeoGebra Commands & Parameters

  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