Dynamic Morley's Theorem Illustration
Loading the math board and drawing, please wait…
In collections
CCSS High School: Geometry (Congruence) Volume 2
CCSS High School: Geometry (Congruence) Volume 2
CCSS High School: Geometry (Congruence) Volume 2
CCSS High School: Geometry (Congruence) Volume 2
Geometry Review
Triangle Theorems
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
Line(A, B) → pPointIn(d) → CPolygon(A, B, C) → poly1, c, a, bAngle(poly1) → α, β, γRotate(B, α / 3, A) → B'Angle(B, A, B') → δRay(A, B') → fRotate(B', α / 3, A) → B''Angle(B', A, B'') → εRay(A, B'') → gRotate(C, β / 3, B) → C'Angle(C, B, C') → ζRay(B, C') → hRotate(C', β / 3, B) → C''Angle(C', B, C'') → ηRay(B, C'') → iRotate(A, γ / 3, C) → A'Angle(A, C, A') → θRay(C, A') → jRotate(A', γ / 3, C) → A''Angle(A', C, A'') → ιRay(C, A'') → kIntersect(f, i) → DIntersect(h, k) → EIntersect(g, j) → FSegment(D, E) → lSegment(E, F) → mSegment(F, D) → nLine(A, C) → qLine(C, B) → rMin({a, b, c}) → sSegment(A, B) → tSegment(B, C) → f_1Segment(C, A) → g_1Intersect(g, f_1) → GIntersect(f, f_1) → HIntersect(g_1, h) → IIntersect(g_1, i) → JIntersect(k, t) → KIntersect(j, t) → LCircle(A, (0.2 * s)) → c_1Circle(B, (0.2 * s)) → d_1Circle(C, (0.2 * s)) → e_1Intersect(d_1, f_1, 1) → MIntersect(d_1, h) → N,Intersect(c_1, f, 1) → OIntersect(c_1, t, 1) → PIntersect(e_1, g_1, 1) → QIntersect(e_1, j, 1) → RCircleSector(B, M, N) → h_1CircleSector(A, P, O) → k_1CircleSector(C, Q, R) → p_1Polygon(D, E, F) → poly2, f_2, d_2, e_2Dilate(A, If[0 < u ≤ 1, 1 - u, 0], D) → A'_1Dilate(B, If[0 < u ≤ 1, 1 - u, 0], E) → B'_1Dilate(C, If[0 < u ≤ 1, 1 - u, 0], F) → C'_1Segment(A, A'_1) → i_1Segment(B, B'_1) → j_1Segment(C, C'_1) → l_1Dilate(A, If[1 < u ≤ 2, 2 - u, 0], F) → A'_2Dilate(B, If[1 < u ≤ 2, 2 - u, 0], D) → B'_2Dilate(C, If[1 < u ≤ 2, 2 - u, 0], E) → C'_2Segment(A, A'_2) → m_1Segment(C, C'_2) → n_1Segment(B, B'_2) → q_1Rotate(k_1, If[2 < u ≤ 3, (((u - 2) * 2) * α / 3), (2 * α / 3)], A) → r_1Rotate(r_1, If[3.5 < u ≤ 4.5, ((-(u - 3.5)) * α / 3), ((-α)) / 3], A) → s_1Rotate(h_1, If[4.5 < u ≤ 5.5, (((u - 4.5) * 2) * β / 3), (2 * β / 3)], B) → t_1Rotate(t_1, If[6 < u ≤ 7, ((-(u - 6)) * β / 3), ((-β)) / 3], B) → c_2Rotate(p_1, If[7 < u ≤ 8, (((u - 7) * 2) * γ / 3), (2 * γ / 3)], C) → g_2Rotate(g_2, If[8.5 < u ≤ 9.5, ((-(u - 8.5)) * γ / 3), ((-γ)) / 3], C) → h_2Dilate(D, If[11 < u ≤ 12, 12 - u, 0], E) → D'Segment(D, D') → a_1Rotate(D, If[12 < u ≤ 13, ((u - 12) * π / 3), π / 3], D) → D'_1Rotate(D', If[12 < u ≤ 13, ((u - 12) * π / 3), π / 3], D) → D''Segment(D'_1, D'') → b_1Rotate(D'_1, If[13 < u ≤ 14, ((u - 13) * π / 3), π / 3], F) → SRotate(D'', If[13 < u ≤ 14, ((u - 13) * π / 3), π / 3], F) → D'''Segment(S, D''') → i_2