Medians & Equal Areas! Triangle Centroid Phenomenon

Medians & Equal Areas! Triangle Centroid Phenomenon
Loading the math board and drawing, please wait…
2016-05-14 23:55
This GeoGebra example demonstrates the classic phenomenon that the three medians of a triangle intersect at the centroid, dividing the triangle into six smaller triangles of equal area. Core mathematical concepts include medians, centroid (barycenter), and area partition properties. Construction highlights: using GeoGebra commands such as Segment, Midpoint, Intersect, Polygon, Dilate, Translate, Rotate, and Line to build the triangle, its medians, and the subdivided regions. The interactive construction allows users to drag vertices and observe that the six areas remain equal, reinforcing the invariant nature of the centroid. Suitable for middle and high school geometry classes, as well as introductory calculus discussions on area and integration.

GeoGebra Commands & Parameters

  1. Segment(A, B) → a
  2. Segment(C, A) → b
  3. Segment(C, B) → c
  4. Midpoint(a) → D
  5. Midpoint(c) → E
  6. Midpoint(b) → F
  7. Segment(C, D) → d
  8. Segment(A, E) → e
  9. Segment(B, F) → f
  10. Intersect(f, e) → H
  11. OrthogonalLine(D, e) → g
  12. OrthogonalLine(F, e) → h
  13. OrthogonalLine(E, d) → i
  14. OrthogonalLine(F, d) → j
  15. Intersect(g, e) → G
  16. Intersect(h, e) → I
  17. Intersect(j, d) → K
  18. OrthogonalLine(E, f) → k
  19. OrthogonalLine(D, f) → l
  20. Polygon(A, B, C) → poly1, c_1, a_1, b_1
  21. Dilate(A, If[1 < m ≤ 2, 2 - m, 0], E) → A'
  22. Dilate(C, If[0 < m ≤ 1, 1 - m, 0], D) → C'
  23. Dilate(B, If[2 < m ≤ 3, 3 - m, 0], F) → B'
  24. Segment(A, A') → n
  25. Segment(B, B') → p
  26. Segment(C, C') → q
  27. OrthogonalLine(H, a) → r
  28. OrthogonalLine(H, b) → s
  29. OrthogonalLine(H, c) → t
  30. Intersect(r, a) → L
  31. Intersect(s, b) → M
  32. Intersect(t, c) → N
  33. Dilate(B, If[4 < m ≤ 5, 5 - m, 0], D) → B'_1
  34. Dilate(H, If[4 < m ≤ 5, 5 - m, 0], L) → H'
  35. Segment(H, H') → e_1
  36. Angle(H, L, A) → α
  37. Angle(H, M, C) → β
  38. Angle(H, N, B) → γ
  39. Segment(B, D) → d_1
  40. Segment(H, H') → h_1
  41. Polygon(D, B, H) → poly2, h_2, d_2, b_2
  42. Dilate(B, If[6 < m ≤ 7, 7 - m, 0], D) → B'_3
  43. Vector(B, B'_3) → v
  44. Translate(D, v) → D'
  45. Segment(B'_3, D') → i_1
  46. Polygon(D', H, B'_3) → poly3, b'_3, d', h_3
  47. Midpoint(I, G) → P
  48. Dilate(D, If[8 < m ≤ 9, 9 - m, 0], G) → D'_1
  49. Segment(D, D'_1) → j_1
  50. Angle(D, G, H) → δ
  51. Angle(F, I, A) → ε
  52. Dilate(F, If[8 < m ≤ 9, 9 - m, 0], I) → F'
  53. Segment(F, F') → k_1
  54. Polygon(D, B, H) → poly4, h_4, d_3, b_3
  55. Polygon(H, D, A) → poly5, a_2, h_5, d_4
  56. Polygon(A, H, F) → poly6, f_2, a_3, h_6
  57. Polygon(F, H, C) → poly7, c_2, f_3, h_7
  58. Polygon(H, E, C) → poly8, c_3, h_8, e_2
  59. Polygon(H, E, B) → poly9, b_4, h_9, e_3
  60. Segment(A, H) → f_1
  61. Rotate(D, If[9.5 < m ≤ 10.5, ((m - 9.5) * π), 3.141592653589793], P) → D'_2
  62. Rotate(D'_1, If[9.5 < m ≤ 10.5, ((m - 9.5) * π), 3.141592653589793], P) → O
  63. Polygon(A, H, F) → poly10, f_4, a_4, h_{10}
  64. Dilate(H, If[11 < m ≤ 12, 12 - m, 0], M) → H'_1
  65. Segment(A, F) → l_1
  66. Segment(H, H'_1) → m_1
  67. Dilate(F, If[12.5 < m ≤ 13.5, 13.5 - m, 0], C) → F'_1
  68. Vector(F, F'_1) → u
  69. Translate(A, u) → A'_1
  70. Translate(F, u) → F'_2
  71. Segment(A'_1, F'_2) → n_1
  72. Polygon(A'_1, H, F'_1) → poly11, f'_1, a'_1, h_{11}
  73. Dilate(F, If[14.5 < m ≤ 15.5, 15.5 - m, 0], K) → F'_3
  74. Segment(F, F'_3) → p_1
  75. Segment(C, H) → q_1
  76. Angle(F, K, H) → ζ
  77. Polygon(H, E, C) → poly12, c_4, h_{12}, e_4
  78. Line(C, D) → r_1
  79. OrthogonalLine(E, r_1) → s_1
  80. Intersect(s_1, r_1) → J
  81. Angle(E, J, C) → η
  82. Dilate(E, If[14.5 < m ≤ 15.5, 15.5 - m, 0], J) → E'
  83. Segment(E, E') → t_1
  84. Midpoint(K, J) → R
  85. Rotate(F, If[16 < m ≤ 17, ((m - 16) * π), 3.141592653589793], R) → F'_4
  86. Rotate(F'_3, If[16 < m ≤ 17, ((m - 16) * π), 3.141592653589793], R) → S
  87. Dilate(H, If[17.5 < m ≤ 18.5, 18.5 - m, 0], N) → H'_2
  88. Segment(H, H'_2) → j_2
  89. Segment(C, E) → i_2
  90. Dilate(C, If[19 < m ≤ 20, 20 - m, 0], E) → C'_1
  91. Vector(C, C'_1) → w
  92. Translate(E, w) → E'_1
  93. Translate(C, w) → C'_2
  94. Translate(E, w) → E'_2
  95. Segment(C'_2, E'_2) → k_2
  96. Polygon(C'_1, H, E'_1) → poly13, e'_1, c'_1, h_{13}
  97. Line(F, B) → l_2
  98. OrthogonalLine(E, l_2) → m_2
  99. OrthogonalLine(D, l_2) → n_2
  100. Intersect(l_2, n_2) → T
  101. Intersect(m_2, l_2) → U
  102. Segment(H, B) → p_2
  103. Dilate(E, If[20.5 < m ≤ 21.5, 21.5 - m, 0], U) → E'_3
  104. Dilate(D, If[20.5 < m ≤ 21.5, 21.5 - m, 0], T) → D'_3
  105. Segment(E, E'_3) → q_2
  106. Segment(D, D'_3) → r_2
  107. Angle(E, U, F) → θ
  108. Angle(D, T, B) → ι
  109. Segment(H, B) → s_2
  110. Midpoint(U, T) → V
  111. Rotate(E, If[22 < m ≤ 23, ((m - 22) * π), 3.141592653589793], V) → E'_4
  112. Rotate(E'_3, If[22 < m ≤ 23, ((m - 22) * π), 3.141592653589793], V) → W
  113. Polygon(B, D, H) → poly14, h_{14}, b_5, d_5
  114. Polygon(A, D, H) → poly15, h_{15}, a_5, d_6
  115. Polygon(A, H, F) → poly16, f_5, a_6, h_{16}
  116. Polygon(F, H, C) → poly17, c_5, f_6, h_{17}
  117. Polygon(H, E, C) → poly18, c_6, h_{18}, e_5
  118. Dilate(D, If[9.5 < m ≤ 10.5, 10.5 - m, 0], F') → C'_3
  119. Dilate(D, If[9.5 < d ≤ 10.5, 10.5 - d, 0], F') → D'_4
  120. Segment(C'_3, D'_4) → d'_1
  121. Vector(D, C'_3) → u_1
  122. Translate(D, u_1) → D'_5
  123. Translate(D'_1, u_1) → Q
  124. Segment(D'_5, Q) → g_3
  125. Dilate(F, If[16 < m ≤ 17, 17 - m, 0], E') → F'_5
  126. Vector(F, F'_5) → v_1
  127. Translate(F, v_1) → F'_6
  128. Translate(F'_3, v_1) → Z
  129. Segment(F'_6, Z) → g_1
  130. Dilate(E, If[22 < m ≤ 23, 23 - m, 0], D'_3) → D'_6
  131. Vector(E, D'_6) → w_1
  132. Translate(E, w_1) → E'_5
  133. Translate(E'_3, w_1) → A_1
  134. Segment(E'_5, A_1) → g_2