Napoleon Motion Dynamic Demo

Napoleon Motion Dynamic Demo
Loading the math board and drawing, please wait…
2016-05-22 03:51
This example dynamically illustrates Napoleon's Theorem by visually demonstrating that the centroids of three equilateral triangles formed on the sides of any triangle remain the vertices of an equilateral triangle. Key math concepts include triangles, equilateral triangles, centroids, rotations, and dilations. Construction highlights involve commands like Polygon, Segment, Rotate, Midpoint, Min, Dilate, and Intersect from GeoGebra. Suitable for high school and above, aiding in understanding geometric transformations and theorem proofs visually.

GeoGebra Commands & Parameters

  1. Polygon(A, B, C) → poly1, c, a, b
  2. Polygon(C, B, 3) → poly2, d, e, f, D
  3. Polygon(A, C, 3) → poly3, g, h, i, E
  4. Polygon(B, A, 3) → poly4, j, k, l, F
  5. Segment(A, B) → m
  6. Segment(B, C) → n
  7. Segment(C, A) → p
  8. Rotate(B, If[0 < o ≤ 1, (o * π / 3), 1.0471975511965976], B) → B'
  9. Rotate(C, If[0 < o ≤ 1, ((-o) * π / 3), -1.0472], B) → C'
  10. Segment(B', C') → n'
  11. Rotate(B, If[1 < o ≤ 2, ((o - 1) * π / 3), 1.0472], C) → B'_1
  12. Rotate(C, If[0 < o ≤ 1, (o * π / 3), 1.0471975511965976], C) → C'_1
  13. Segment(B'_1, C'_1) → n'_1
  14. Rotate(C, If[2 < o ≤ 3, ((-(o - 2)) * π / 3), -1.0471975511965976], C) → C'_2
  15. Rotate(A, If[2 < o ≤ 3, ((-(o - 2)) * π / 3), -1.0471975511965976], C) → A'
  16. Segment(C'_2, A') → p'
  17. Rotate(C, If[3 < o ≤ 4, ((o - 3) * π / 3), 1.0471975511965976], A) → C'_3
  18. Rotate(A, If[3 < o ≤ 4, ((o - 3) * π / 3), 1.0471975511965976], A) → A'_1
  19. Segment(C'_3, A'_1) → p'_1
  20. Rotate(A, If[4 < o ≤ 5, ((-(o - 4)) * π / 3), -1.0471975511965976], A) → A'_2
  21. Rotate(B, If[4 < o ≤ 5, ((-(o - 4)) * π / 3), -1.0471975511965976], A) → B'_2
  22. Segment(A'_2, B'_2) → m'
  23. Rotate(A, If[5 < o ≤ 6, ((o - 5) * π / 3), 1.0471975511965976], B) → A'_3
  24. Rotate(B, If[5 < o ≤ 6, ((o - 5) * π / 3), 1.0471975511965976], B) → B'_3
  25. Segment(A'_3, B'_3) → m'_1
  26. Midpoint(p) → G
  27. Midpoint(n) → H
  28. Midpoint(m) → I
  29. Segment(D, H) → q
  30. Segment(E, G) → r
  31. Segment(F, I) → s
  32. Min(list1) → t
  33. Segment(H, B) → a_1
  34. Segment(C, G) → b_1
  35. Segment(A, I) → c_1
  36. Dilate(D, If[6 < o ≤ 7, 7 - o, 0], H) → D'
  37. Segment(D, D') → d_1
  38. Dilate(E, If[6 < o ≤ 7, 7 - o, 0], G) → E'
  39. Segment(E, E') → e_1
  40. Dilate(F, If[6 < o ≤ 7, 7 - o, 0], I) → F'
  41. Segment(F, F') → f_1
  42. Rotate(H, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], H) → H'
  43. Rotate(B, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], H) → B'_4
  44. Segment(H', B'_4) → g_1
  45. Rotate(C, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], G) → C'_4
  46. Rotate(G, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], G) → G'
  47. Segment(C'_4, G') → h_1
  48. Rotate(A, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], I) → A'_4
  49. Rotate(I, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], I) → I'
  50. Segment(A'_4, I') → i_1
  51. Midpoint(p') → J
  52. Midpoint(m') → K
  53. Midpoint(n') → L
  54. Segment(J, C) → j_1
  55. Segment(B, L) → k_1
  56. Segment(A, K) → l_1
  57. Dilate(A, If[9 < o ≤ 10, 10 - o, 0], J) → A'_5
  58. Segment(A, A'_5) → m_1
  59. Dilate(C, If[9 < o ≤ 10, 10 - o, 0], L) → C'_5
  60. Segment(C, C'_5) → n_1
  61. Dilate(B, If[9 < o ≤ 10, 10 - o, 0], K) → B'_5
  62. Segment(B, B'_5) → p_1
  63. Rotate(B, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], L) → B'_6
  64. Rotate(L, If[10.5 < o ≤ 11.5, ((o - 11.5) * π), 3.141592653589793], L) → L'
  65. Segment(B'_6, L') → q_1
  66. Rotate(J, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], J) → J'
  67. Rotate(C, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], J) → C'_6
  68. Segment(J', C'_6) → r_1
  69. Rotate(A, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], K) → A'_6
  70. Rotate(K, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], K) → K'
  71. Segment(A'_6, K') → s_1
  72. Intersect(e_1, m_1) → M
  73. Intersect(f_1, p_1) → N
  74. Intersect(d_1, n_1) → O
  75. Dilate(N, If[12 < o ≤ 13, 13 - o, 0], O) → N'
  76. Segment(N, N') → t_1
  77. Rotate(N, If[13 < o ≤ 14, ((-(o - 13)) * π / 3), -1.0472], O) → N'_1
  78. Rotate(N', If[13 < o ≤ 14, ((o - 13) * π / 3), 1.0471975511965976], O) → N''
  79. Segment(N'_1, N'') → a_2
  80. Rotate(N, If[14 < o ≤ 15, ((o - 14) * π / 3), 1.0471975511965976], N) → N'_2
  81. Rotate(N', If[14 < o ≤ 15, ((o - 14) * π / 3), 1.0471975511965976], N) → N''_1
  82. Segment(N'_2, N''_1) → b_2
  83. Polygon(N, O, M) → poly5, m_2, n_2, o_1