Finsler-Hadwiger Sequel: Dynamic Geometry of Squares and Segments
Loading the math board and drawing, please wait…
This example illustrates the sequel to the Finsler‑Hadwiger theorem, showing how two squares interact through a sequence of geometric transformations. Core concepts include square properties, midpoints, vector translations, rotations, dilations, similarity, and congruence within transformation groups. Construction uses GeoGebra commands Circle, Point, Polygon, Midpoint, Dilate, Segment, Rotate, Translate, Line, Angle, OrthogonalLine, and Ray to create vertices A, B, C, D, polygons poly1, poly2 and their transformed copies such as B', B'_1, B'_2. It is suitable for high‑school geometry electives, university courses on geometric transformations, and advanced GeoGebra workshops.
GeoGebra Commands & Parameters
Circle(A, b) → dPoint(d) → BCircle(B, c) → ePoint(e) → CPolygon(A, B, 4) → poly1, f, g, h, i, D, EPolygon(C, B, 4) → poly2, j, k, l, m, F, GMidpoint(D, A) → HMidpoint(F, C) → IMidpoint(D, C) → JMidpoint(A, F) → KDilate(B, If[0 < a ≤ 1, 1 - a, 0], A) → B'Dilate(B, If[0 < a ≤ 1, 1 - a, 0], F) → B'_1Segment(B, B') → nSegment(B, B'_1) → pRotate(B, If[1 < a ≤ 2, ((-(a - 1)) * π / 2), ((-π)) / 2], F) → B'_2Rotate(B'_1, If[1 < a ≤ 2, ((-(a - 1)) * π / 2), ((-π)) / 2], F) → LSegment(B'_2, L) → p'Rotate(B, If[1 < a ≤ 2, ((a - 1) * π / 2), π / 2], A) → B'_3Rotate(B', If[1 < a ≤ 2, ((a - 1) * π / 2), π / 2], A) → B''Segment(B'_3, B'') → n'Rotate(B'_2, If[2 < a ≤ 3, ((-(a - 2)) * π / 2), ((-π)) / 2], G) → MRotate(L, If[2 < a ≤ 3, ((-(a - 2)) * π / 2), ((-π)) / 2], G) → L'Segment(M, L') → p''Rotate(B'_3, If[2 < a ≤ 3, ((a - 2) * π / 2), π / 2], E) → NRotate(B'', If[2 < a ≤ 3, ((a - 2) * π / 2), π / 2], E) → B'''Segment(N, B''') → n''Rotate(N, If[3 < a ≤ 4, ((a - 3) * π / 2), π / 2], D) → N'Rotate(B''', If[3 < a ≤ 4, ((a - 3) * π / 2), π / 2], D) → OSegment(N', O) → n'''Rotate(M, If[3 < a ≤ 4, ((-(a - 3)) * π / 2), ((-π)) / 2], C) → M'Rotate(L', If[3 < a ≤ 4, ((-(a - 3)) * π / 2), ((-π)) / 2], C) → L''Segment(M', L'') → p'''Segment(F, G) → qSegment(F, B) → rSegment(A, B) → sMin(r, s) → oCircle(F, (0.15 * o)) → tIntersect(l, q) → PIntersect(t, q) → Q,Intersect(t, r) → R,CircleSector(F, Q, R) → c_1Dilate(F, If[4 < a ≤ 5, 5 - a, 0], C) → F'Vector(F, F') → uTranslate(c_1, u) → d_1Rotate(d_1, If[5 < a ≤ 6, ((a - 5) * π), π], C) → e_1Dilate(F, If[6 < a ≤ 7, 7 - a, 0], A) → F'_1Dilate(C, If[6 < a ≤ 7, 7 - a, 0], E) → C'Vector(F, F'_1) → vVector(C, C') → wTranslate(e_1, w) → f_1Translate(c_1, v) → g_1Line(A, p) → h_1Line(E, p''') → i_1Point(h_1) → SAngle(S, A, E) → αRotate(g_1, If[7 < a ≤ 8, ((-(a - 7)) * ((2 * π) - α)), (-((2 * π) - α))], A) → k_1Line(E, h_1) → j_1Point(j_1) → TAngle(D, E, T) → βRotate(f_1, If[7 < a ≤ 8, ((-(a - 7)) * β), (-β)], E) → p_1Dilate(E, If[8 < a ≤ 9, 9 - a, 0], G) → E'Dilate(F, If[8 < a ≤ 9, 9 - a, 0], D) → F'_2Vector(E, E') → u_1Vector(F, F'_2) → v_1Translate(p_1, u_1) → q_1Translate(c_1, v_1) → r_1Line(G, n'') → l_1Point(l_1) → ULine(G, n') → m_1Point(m_1) → VAngle(C, G, V) → γRotate(q_1, If[8 < a ≤ 9, ((-(a - 8)) * γ), (-γ)], E') → s_1Line(D, p) → n_1Point(n_1) → WAngle(W, D, B) → δRotate(r_1, If[8 < a ≤ 9, ((a - 8) * δ), δ], F'_2) → t_1Midpoint(A, B) → ZMidpoint(B, C) → A_1Midpoint(Z, B) → B_1Midpoint(A_1, B) → C_1Dilate(C, If[9 < a ≤ 10, 10 - a, 0], C_1) → C'_1Dilate(A, If[9 < a ≤ 10, 10 - a, 0], B_1) → A'Vector(A, A') → w_1Vector(C, C'_1) → a_1Translate(e_1, a_1) → c_2Translate(k_1, w_1) → d_2Rotate(d_2, If[10 < a ≤ 11, ((a - 10) * π / 2), π / 2], B_1) → e_2Rotate(c_2, If[10 < a ≤ 11, ((a - 10) * π / 2), π / 2], C_1) → f_2Dilate(C_1, If[11 < a ≤ 12, 12 - a, 0], B) → D_1Dilate(B_1, If[11 < a ≤ 12, 12 - a, 0], B) → E_1Vector(B_1, E_1) → b_1Vector(C_1, D_1) → u_2Translate(e_2, b_1) → g_2Translate(f_2, u_2) → h_2Dilate(F, If[12 < a ≤ 13, 13 - a, 0], I) → F'_3Segment(F, F'_3) → i_2Dilate(D, If[12 < a ≤ 13, 13 - a, 0], H) → D'Segment(D, D') → j_2Rotate(F, If[13 < a ≤ 14, ((a - 13) * π), π], I) → F'_4Rotate(F'_3, If[13 < a ≤ 14, ((a - 13) * π), π], I) → F_1Segment(F'_4, F_1) → k_2Rotate(D, If[13 < a ≤ 14, ((a - 13) * π), π], H) → D'_1Rotate(D', If[13 < a ≤ 14, ((a - 13) * π), π], H) → D''Segment(D'_1, D'') → l_2Dilate(A, If[14 < a ≤ 15, 15 - a, 0], K) → A'_1Dilate(C, If[14 < a ≤ 15, 15 - a, 0], J) → C'_2Segment(A, A'_1) → m_2Segment(C, C'_2) → n_2Dilate(K, If[15 < a ≤ 16, 16 - a, 0], F) → K'Dilate(J, If[15 < a ≤ 16, 16 - a, 0], D) → J'Segment(K, K') → p_2Segment(J, J') → q_2Rotate(A, If[16 < a ≤ 17, ((-(a - 16)) * π), (-π)], K) → A'_2Rotate(A'_1, If[16 < a ≤ 17, ((-(a - 16)) * π), (-π)], K) → G_1Segment(A'_2, G_1) → r_2Rotate(C, If[16 < a ≤ 17, ((-(a - 16)) * π), (-π)], J) → C'_3Rotate(C'_2, If[16 < a ≤ 17, ((-(a - 16)) * π), (-π)], J) → H_1Segment(C'_3, H_1) → s_2Dilate(K, If[17 < a ≤ 18, 18 - a, 0], I) → K'_1Rotate(K, If[18 < a ≤ 19, ((a - 18) * π / 2), π / 2], K) → K'_2Rotate(K'_1, If[18 < a ≤ 19, ((a - 18) * π / 2), π / 2], K) → I_1Rotate(K'_2, If[19 < a ≤ 20, ((a - 19) * π / 2), π / 2], H) → J_1Rotate(I_1, If[19 < a ≤ 20, ((a - 19) * π / 2), π / 2], H) → K_1Rotate(J_1, If[20 < a ≤ 21, ((a - 20) * π / 2), π / 2], J) → L_1Rotate(K_1, If[20 < a ≤ 21, ((a - 20) * π / 2), π / 2], J) → M_1Dilate(B, If[21 < a ≤ 22, 22 - a, 0], I) → B'_4Dilate(B, If[21 < a ≤ 22, 22 - a, 0], H) → B'_5Vector(B, B'_4) → v_2Vector(B, B'_5) → w_2Line(I, p) → g_3Point(g_3) → N_1Angle(N_1, I, J) → εLine(H, n''') → l_3Point(l_3) → O_1Angle(K, H, O_1) → ζDilate(F, If[23 < a ≤ 24, 24 - a, 0], K) → F'_5Dilate(D, If[23 < a ≤ 24, 24 - a, 0], J) → D'_2Vector(D, D'_2) → u_3Vector(F, F'_5) → v_3Translate(t_1, u_3) → r_3Line(K, p) → n_3Point(n_3) → Q_1Angle(Q_1, K, I) → θ_1Line(A, K) → a_3Line(J, B) → b_3Polygon(A, F, B) → poly3, b_2, a_2, f_3Dilate(J, If[17 < a ≤ 18, 18 - a, 0], B) → J'_1Segment(J, J'_1) → t_2OrthogonalLine(J, r_2) → h_3Intersect(a_3, h_3) → P_1Dilate(B, If[18 < a ≤ 19, 19 - a, 0], P_1) → B'_6Segment(B, B'_6) → i_3Dilate(B, If[19 < a ≤ 20, 20 - a, 0], P_1) → B'_7Vector(B, B'_7) → w_3Translate(h_2, w_3) → k_3Line(B, r_2) → j_3Point(j_3) → R_1Angle(F, B, R_1) → θRotate(k_3, If[19 < a ≤ 20, ((a - 19) * θ), θ], B'_7) → s_3Line(B, m_2) → m_3Rotate(J, If[20 < a ≤ 21, ((a - 20) * π / 2), π / 2], B) → J'_2Rotate(J'_1, If[20 < a ≤ 21, ((a - 20) * π / 2), π / 2], B) → S_1Segment(J'_2, S_1) → f_4Dilate(B, If[21 < a ≤ 22, 22 - a, 0], K) → B'_8Vector(B, B'_8) → c_3Translate(J'_2, c_3) → T_1Translate(S_1, c_3) → U_1Segment(T_1, U_1) → p_3Rotate(J, If[22 < a ≤ 23, ((-(a - 22)) * π / 2), ((-π)) / 2], B) → J'_3Rotate(J'_1, If[22 < a ≤ 23, ((-(a - 22)) * π / 2), ((-π)) / 2], B) → V_1Segment(J'_3, V_1) → d_3Dilate(B, If[23 < a ≤ 24, 24 - a, 0], K) → B'_9Vector(B, B'_9) → e_3Translate(J'_3, e_3) → W_1Translate(V_1, e_3) → Z_1Segment(W_1, Z_1) → q_3Line(A, K) → t_3Circle(A, 2) → c_4Intersect(c_4, t_3, 1) → A_2Circle(F, 2) → d_4Intersect(d_4, t_3, 2) → B_2Ray(A, A_2) → g_4Ray(F, B_2) → h_4
AI Drawing Prompt Reference
Construct two squares ABCD and CBFG sharing vertex B, with C placed on a circle centered at B with radius smaller than AB. After forming both squares and marking their side midpoints, introduce an animation parameter that sequentially demonstrates a series of geometric transformations: first dilating vertex B to produce corresponding points and segments, then rotating pairs of points around different centers to generate new corresponding segments, followed by translating a sector region, and finally applying additional rotations and dilations. The construction visualizes the dynamic Finsler-Hadwiger theorem, highlighting corresponding angles and arc sectors throughout the transformation sequence.
The prompt above was compiled from the original drawing commands and is for reference only.