Steinhaus Hinged Heptagon: Area-Preserving Rotational Puzzle
Loading the math board and drawing, please wait…
In collections
Exploring Feyman's Triangle
This example demonstrates a hinged heptagon puzzle based on the Steinhaus design, where multiple polygonal pieces are rotated and moved to show that the total area remains invariant during the transformation. The core mathematical concepts include area conservation, polygon dissection and reassembly, rotational transformations, and linear programming ideas for optimizing piece layout. The construction uses GeoGebra commands such as Segment, Dilate, Intersect, Polygon, Midpoint, Rotate, Semicircle, Point, and Angle to create several triangles, semicircles, and auxiliary points, then generates rotated copies (e.g., poly1', poly1'_1, etc.) to form symmetric or hinged piece groups, resulting in a dynamically adjustable puzzle structure. This example is suitable for upper secondary to early university students, helping them intuitively understand invariants under geometric transformations, and can serve as material for mathematical experiments or inquiry-based learning to foster spatial reasoning and logical deduction.
GeoGebra Commands & Parameters
Segment(A, B) → fSegment(B, C) → gSegment(C, A) → hDilate(B, 1 / 3, A) → B'Dilate(A, 1 / 3, C) → A'Dilate(C, 1 / 3, B) → C'Segment(C, B') → iSegment(B, A') → jSegment(C', A) → kIntersect(i, j) → DIntersect(j, k) → EIntersect(i, k) → FPolygon(F, E, D) → poly1, d, f_1, eMidpoint(D, E) → GMidpoint(F, E) → HMidpoint(D, F) → IRotate(F, 180°, G) → F'Rotate(E, 180°, G) → E'Rotate(D, 180°, G) → D'Polygon(F', E', D') → poly1', d', f', e'Rotate(F, 180°, H) → F'_1Rotate(E, 180°, H) → E'_1Rotate(D, 180°, H) → D'_1Polygon(F'_1, E'_1, D'_1) → poly1'_1, d'_1, f'_1, e'_1Rotate(F, 180°, I) → F'_2Rotate(E, 180°, I) → E'_2Rotate(D, 180°, I) → D'_2Polygon(F'_2, E'_2, D'_2) → poly1'_2, d'_2, f'_2, e'_2Midpoint(C, B) → JMidpoint(C, A) → KMidpoint(A, B) → LPolygon(J, E, C') → poly2, c', j_1, e_1Polygon(F, B', L) → poly3, l, f_2, b'Polygon(A', D, K) → poly4, k_1, a', d_1Intersect(h, f'_2) → MIntersect(g, d') → NIntersect(f, e'_1) → OPolygon(M, A, F) → poly5, f_3, m, aPolygon(E, O, B) → poly6, b, e_2, oPolygon(C, D, N) → poly7, n, c, d_2Semicircle(P, Q) → pMidpoint(Q, P) → RPoint(p) → SSegment(S, R) → qSegment(P, R) → rAngle(S, R, P) → αRotate(J, α, J) → J'Rotate(E, α, J) → E'_3Rotate(C', α, J) → C''Polygon(J', E'_3, C'') → poly2', c'', j', e'_3Rotate(F, α, L) → F'_3Rotate(B', α, L) → B''Rotate(L, α, L) → L'Polygon(F'_3, B'', L') → poly3', l', f'_3, b''Rotate(A', α, K) → A''Rotate(D, α, K) → D'_3Rotate(K, α, K) → K'Polygon(A'', D'_3, K') → poly4', k', a'', d'_3Rotate(C, (-α), J) → C'_1Rotate(D, (-α), J) → D'_4Rotate(N, (-α), J) → N'Polygon(C'_1, D'_4, N') → poly7', n', c'_1, d'_4Rotate(E, (-α), L) → E'_4Rotate(O, (-α), L) → O'Rotate(B, (-α), L) → B'_1Polygon(E'_4, O', B'_1) → poly6', b'_1, e'_4, o'Segment(L, O') → sSegment(J, N') → tRotate(M, (-α), K) → M'Rotate(A, (-α), K) → A'_1Rotate(F, (-α), K) → F'_4Polygon(M', A'_1, F'_4) → poly5', f'_4, m', a'_1Segment(M', K) → g_1Polygon(D, E, J, N) → poly8, d_3, e_3, j_2, n_1Polygon(D, K, M, F) → poly9, d_4, k_2, m_1, f_4Polygon(F, L, O, E) → poly10, f_5, l_1, o_1, e_4Polygon(A', D, C) → poly11, c_1, a'_2, d_5Polygon(C', E, B) → poly12, b_1, c'_2, e_5Polygon(F, B', A) → poly13, a_1, f_6, b'_2