Dynamic Morley's Theorem Illustration

Dynamic Morley's Theorem Illustration
Loading the math board and drawing, please wait…
2016-09-10 10:57
This example dynamically illustrates Morley's Theorem, showing that the intersection points of the trisectors of the angles in any triangle form an equilateral triangle. It involves core mathematical concepts such as angles, equilateral triangles, and geometric constructions. The construction uses GeoGebra commands and objects like Line, PointIn, Polygon, Angle, Rotate, Ray, Intersect, Segment, Min, Circle, CircleSector, and Dilate. It is suitable for high school and above students to understand the dynamic proof and construction process of geometric theorems.

GeoGebra Commands & Parameters

  1. Line(A, B) → p
  2. PointIn(d) → C
  3. Polygon(A, B, C) → poly1, c, a, b
  4. Angle(poly1) → α, β, γ
  5. Rotate(B, α / 3, A) → B'
  6. Angle(B, A, B') → δ
  7. Ray(A, B') → f
  8. Rotate(B', α / 3, A) → B''
  9. Angle(B', A, B'') → ε
  10. Ray(A, B'') → g
  11. Rotate(C, β / 3, B) → C'
  12. Angle(C, B, C') → ζ
  13. Ray(B, C') → h
  14. Rotate(C', β / 3, B) → C''
  15. Angle(C', B, C'') → η
  16. Ray(B, C'') → i
  17. Rotate(A, γ / 3, C) → A'
  18. Angle(A, C, A') → θ
  19. Ray(C, A') → j
  20. Rotate(A', γ / 3, C) → A''
  21. Angle(A', C, A'') → ι
  22. Ray(C, A'') → k
  23. Intersect(f, i) → D
  24. Intersect(h, k) → E
  25. Intersect(g, j) → F
  26. Segment(D, E) → l
  27. Segment(E, F) → m
  28. Segment(F, D) → n
  29. Line(A, C) → q
  30. Line(C, B) → r
  31. Min({a, b, c}) → s
  32. Segment(A, B) → t
  33. Segment(B, C) → f_1
  34. Segment(C, A) → g_1
  35. Intersect(g, f_1) → G
  36. Intersect(f, f_1) → H
  37. Intersect(g_1, h) → I
  38. Intersect(g_1, i) → J
  39. Intersect(k, t) → K
  40. Intersect(j, t) → L
  41. Circle(A, (0.2 * s)) → c_1
  42. Circle(B, (0.2 * s)) → d_1
  43. Circle(C, (0.2 * s)) → e_1
  44. Intersect(d_1, f_1, 1) → M
  45. Intersect(d_1, h) → N,
  46. Intersect(c_1, f, 1) → O
  47. Intersect(c_1, t, 1) → P
  48. Intersect(e_1, g_1, 1) → Q
  49. Intersect(e_1, j, 1) → R
  50. CircleSector(B, M, N) → h_1
  51. CircleSector(A, P, O) → k_1
  52. CircleSector(C, Q, R) → p_1
  53. Polygon(D, E, F) → poly2, f_2, d_2, e_2
  54. Dilate(A, If[0 < u ≤ 1, 1 - u, 0], D) → A'_1
  55. Dilate(B, If[0 < u ≤ 1, 1 - u, 0], E) → B'_1
  56. Dilate(C, If[0 < u ≤ 1, 1 - u, 0], F) → C'_1
  57. Segment(A, A'_1) → i_1
  58. Segment(B, B'_1) → j_1
  59. Segment(C, C'_1) → l_1
  60. Dilate(A, If[1 < u ≤ 2, 2 - u, 0], F) → A'_2
  61. Dilate(B, If[1 < u ≤ 2, 2 - u, 0], D) → B'_2
  62. Dilate(C, If[1 < u ≤ 2, 2 - u, 0], E) → C'_2
  63. Segment(A, A'_2) → m_1
  64. Segment(C, C'_2) → n_1
  65. Segment(B, B'_2) → q_1
  66. Rotate(k_1, If[2 < u ≤ 3, (((u - 2) * 2) * α / 3), (2 * α / 3)], A) → r_1
  67. Rotate(r_1, If[3.5 < u ≤ 4.5, ((-(u - 3.5)) * α / 3), ((-α)) / 3], A) → s_1
  68. Rotate(h_1, If[4.5 < u ≤ 5.5, (((u - 4.5) * 2) * β / 3), (2 * β / 3)], B) → t_1
  69. Rotate(t_1, If[6 < u ≤ 7, ((-(u - 6)) * β / 3), ((-β)) / 3], B) → c_2
  70. Rotate(p_1, If[7 < u ≤ 8, (((u - 7) * 2) * γ / 3), (2 * γ / 3)], C) → g_2
  71. Rotate(g_2, If[8.5 < u ≤ 9.5, ((-(u - 8.5)) * γ / 3), ((-γ)) / 3], C) → h_2
  72. Dilate(D, If[11 < u ≤ 12, 12 - u, 0], E) → D'
  73. Segment(D, D') → a_1
  74. Rotate(D, If[12 < u ≤ 13, ((u - 12) * π / 3), π / 3], D) → D'_1
  75. Rotate(D', If[12 < u ≤ 13, ((u - 12) * π / 3), π / 3], D) → D''
  76. Segment(D'_1, D'') → b_1
  77. Rotate(D'_1, If[13 < u ≤ 14, ((u - 13) * π / 3), π / 3], F) → S
  78. Rotate(D'', If[13 < u ≤ 14, ((u - 13) * π / 3), π / 3], F) → D'''
  79. Segment(S, D''') → i_2