Napoleon Motion Dynamic Demo
Loading the math board and drawing, please wait…
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
Polygon(A, B, C) → poly1, c, a, bPolygon(C, B, 3) → poly2, d, e, f, DPolygon(A, C, 3) → poly3, g, h, i, EPolygon(B, A, 3) → poly4, j, k, l, FSegment(A, B) → mSegment(B, C) → nSegment(C, A) → pRotate(B, If[0 < o ≤ 1, (o * π / 3), 1.0471975511965976], B) → B'Rotate(C, If[0 < o ≤ 1, ((-o) * π / 3), -1.0472], B) → C'Segment(B', C') → n'Rotate(B, If[1 < o ≤ 2, ((o - 1) * π / 3), 1.0472], C) → B'_1Rotate(C, If[0 < o ≤ 1, (o * π / 3), 1.0471975511965976], C) → C'_1Segment(B'_1, C'_1) → n'_1Rotate(C, If[2 < o ≤ 3, ((-(o - 2)) * π / 3), -1.0471975511965976], C) → C'_2Rotate(A, If[2 < o ≤ 3, ((-(o - 2)) * π / 3), -1.0471975511965976], C) → A'Segment(C'_2, A') → p'Rotate(C, If[3 < o ≤ 4, ((o - 3) * π / 3), 1.0471975511965976], A) → C'_3Rotate(A, If[3 < o ≤ 4, ((o - 3) * π / 3), 1.0471975511965976], A) → A'_1Segment(C'_3, A'_1) → p'_1Rotate(A, If[4 < o ≤ 5, ((-(o - 4)) * π / 3), -1.0471975511965976], A) → A'_2Rotate(B, If[4 < o ≤ 5, ((-(o - 4)) * π / 3), -1.0471975511965976], A) → B'_2Segment(A'_2, B'_2) → m'Rotate(A, If[5 < o ≤ 6, ((o - 5) * π / 3), 1.0471975511965976], B) → A'_3Rotate(B, If[5 < o ≤ 6, ((o - 5) * π / 3), 1.0471975511965976], B) → B'_3Segment(A'_3, B'_3) → m'_1Midpoint(p) → GMidpoint(n) → HMidpoint(m) → ISegment(D, H) → qSegment(E, G) → rSegment(F, I) → sMin(list1) → tSegment(H, B) → a_1Segment(C, G) → b_1Segment(A, I) → c_1Dilate(D, If[6 < o ≤ 7, 7 - o, 0], H) → D'Segment(D, D') → d_1Dilate(E, If[6 < o ≤ 7, 7 - o, 0], G) → E'Segment(E, E') → e_1Dilate(F, If[6 < o ≤ 7, 7 - o, 0], I) → F'Segment(F, F') → f_1Rotate(H, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], H) → H'Rotate(B, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], H) → B'_4Segment(H', B'_4) → g_1Rotate(C, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], G) → C'_4Rotate(G, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], G) → G'Segment(C'_4, G') → h_1Rotate(A, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], I) → A'_4Rotate(I, If[7.5 < o ≤ 8.5, ((o - 7.5) * π), 3.141592653589793], I) → I'Segment(A'_4, I') → i_1Midpoint(p') → JMidpoint(m') → KMidpoint(n') → LSegment(J, C) → j_1Segment(B, L) → k_1Segment(A, K) → l_1Dilate(A, If[9 < o ≤ 10, 10 - o, 0], J) → A'_5Segment(A, A'_5) → m_1Dilate(C, If[9 < o ≤ 10, 10 - o, 0], L) → C'_5Segment(C, C'_5) → n_1Dilate(B, If[9 < o ≤ 10, 10 - o, 0], K) → B'_5Segment(B, B'_5) → p_1Rotate(B, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], L) → B'_6Rotate(L, If[10.5 < o ≤ 11.5, ((o - 11.5) * π), 3.141592653589793], L) → L'Segment(B'_6, L') → q_1Rotate(J, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], J) → J'Rotate(C, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], J) → C'_6Segment(J', C'_6) → r_1Rotate(A, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], K) → A'_6Rotate(K, If[10.5 < o ≤ 11.5, ((o - 10.5) * π), 3.141592653589793], K) → K'Segment(A'_6, K') → s_1Intersect(e_1, m_1) → MIntersect(f_1, p_1) → NIntersect(d_1, n_1) → ODilate(N, If[12 < o ≤ 13, 13 - o, 0], O) → N'Segment(N, N') → t_1Rotate(N, If[13 < o ≤ 14, ((-(o - 13)) * π / 3), -1.0472], O) → N'_1Rotate(N', If[13 < o ≤ 14, ((o - 13) * π / 3), 1.0471975511965976], O) → N''Segment(N'_1, N'') → a_2Rotate(N, If[14 < o ≤ 15, ((o - 14) * π / 3), 1.0471975511965976], N) → N'_2Rotate(N', If[14 < o ≤ 15, ((o - 14) * π / 3), 1.0471975511965976], N) → N''_1Segment(N'_2, N''_1) → b_2Polygon(N, O, M) → poly5, m_2, n_2, o_1