Pythagora’s Puzzle: Build right-triangle relations via rotation and construction
Loading the math board and drawing, please wait…
This example demonstrates a “puzzle-like” geometric construction that visually assembles relationships associated with Pythagoras’ theorem by chaining rotations, circular arcs, and intersection-defined points. It highlights right triangles, angle measurement, circle/arc geometry, and how geometric transformations can reveal hidden length correspondences. Core concepts include right-triangle structure, using arcs and circle geometry to locate key points, measuring distances, and expressing correspondences through vectors, translations, and rotations (with angles controlling the configuration). Construction is driven by GeoGebra commands such as Midpoint, Rotate, Angle, CircleArc, Intersect, Point, Line/Segment, OrthogonalLine, Distance, Vector, Translate, Polygon, and optionally Centroid and Prism for extended structured layouts. Suitable for middle/high school geometry lessons, dynamic-geometry exploration, and enrichment activities focusing on geometric constructions and transformations.
GeoGebra Commands & Parameters
Midpoint(C, B) → C_3Rotate(B, 90°, C_3) → C_2Angle(B, C_3, C_2) → αCircleArc(C_3, C_2, C) → cPoint(c) → APolygon(C, B, A) → triang, c_{2}, a, bRotate(A, 90°, C) → FAngle(A, C, F) → βRotate(C, 90°, F) → GAngle(C, F, G) → γPolygon(C, A, G, F) → Q, a_1, e_1, g, fRotate(B, 90°, A) → HAngle(B, A, H) → δRotate(A, 90°, H) → I_2Angle(A, H, I_2) → εPolygon(A, B, I_2, H) → R, e_2, b_1, i, hRotate(C, 90°, B) → JAngle(C, B, J) → ζRotate(B, 90°, J) → KAngle(B, J, K) → ηPolygon(C, B, J, K) → S, a_2, b_2, j, kMidpoint(A, I_2) → NOrthogonalLine(N, a_2) → lOrthogonalLine(N, l) → mIntersect(l, e_2) → OIntersect(m, b_1) → TIntersect(l, i) → UIntersect(m, h) → VDistance(N, T) → nAngle(N, T, B) → θDistance(T, B) → o_{3}Angle(C, A, B) → ιPolygon(A, B, I_2, H) → q1, c_3, b_3, e, h_3Polygon(U, N, T, I_2) → q2, u, n_1, t, i_2Polygon(H, V, N, U) → q3, h_1, v, n_2, u_1Polygon(V, A, O, N) → q4, v_1, c_1, o_1, n_3Polygon(N, T, B, O) → q5, n_4, t_1, b_4, o_2Centroid(q3) → DCentroid(q2) → ECentroid(q5) → ICentroid(q4) → LCentroid(Q) → MCentroid(S) → PVector(M, P) → wTranslate(C, Vector[(If[o < 10, o / 10, 1] * w)]) → A'Translate(A, Vector[(If[o < 10, o / 10, 1] * w)]) → C'Translate(G, Vector[(If[o < 10, o / 10, 1] * w)]) → G'Translate(F, Vector[(If[o < 10, o / 10, 1] * w)]) → F'Polygon(A', C', G', F') → Q', a', c', g', f'Translate(G, w) → G'_{1}Translate(A, w) → C'_{1}Translate(F, w) → F'_{1}Translate(C, w) → A'_{1}Line(G'_{1}, C'_{1}) → pLine(G'_{1}, F'_{1}) → qLine(F'_{1}, A'_{1}) → rLine(C'_{1}, A'_{1}) → sIntersect(p, b_2) → WIntersect(j, s) → ZIntersect(r, k) → A_1Polygon(C_3, B, W, G'_{1}) → q6, d, b_5, w_1, g'_{1}Polygon(C, C_3, F'_{1}, A_1) → q7, a_3, f_1, f'_{1}, g_1Polygon(A_1, A'_{1}, Z, K) → q8, i_1, a'_{1}, z_1, k_1Polygon(C'_{1}, Z, J, W) → q9, c'_{1}, z_2, j_1, w_2Centroid(q6) → B_1Centroid(q7) → C_1Centroid(q8) → D_1Centroid(q9) → E_1Vector(I, C_1) → d_1Translate(C, Vector[(If[o < 10, o / 10, 1] * w)]) → A'_{2}Translate(A, Vector[(If[o < 10, o / 10, 1] * w)]) → C'_{2}Translate(G, Vector[(If[o < 10, o / 10, 1] * w)]) → G'_{2}Translate(F, Vector[(If[o < 10, o / 10, 1] * w)]) → F'_{2}Polygon(A'_{2}, C'_{2}, G'_{2}, F'_{2}) → Q'_{1}, a'_{2}, c'_{2}, g'_{2}, f'_{2}Translate(N, Vector[(If[o < 10, o / 10, 1] * d_1)]) → N'Translate(T, Vector[(If[o < 10, o / 10, 1] * d_1)]) → T'Translate(B, Vector[(If[o < 10, o / 10, 1] * d_1)]) → B'Translate(O, Vector[(If[o < 10, o / 10, 1] * d_1)]) → O'Polygon(N', T', B', O') → q5', n', t', b', o'Vector(L, B_1) → l_1Translate(V, Vector[(If[o < 10, o / 10, 1] * l_1)]) → V'Translate(A, Vector[(If[o < 10, o / 10, 1] * l_1)]) → C'_{3}Translate(O, Vector[(If[o < 10, o / 10, 1] * l_1)]) → O'_{1}Translate(N, Vector[(If[o < 10, o / 10, 1] * l_1)]) → N'_{1}Polygon(V', C'_{3}, O'_{1}, N'_{1}) → q4', v', c'_{3}, o'_{1}, n'_{1}Vector(E, D_1) → m_1Translate(U, Vector[(If[o < 10, o / 10, 1] * m_1)]) → U'Translate(N, Vector[(If[o < 10, o / 10, 1] * m_1)]) → N'_{2}Translate(T, Vector[(If[o < 10, o / 10, 1] * m_1)]) → T'_{1}Translate(I_2, Vector[(If[o < 10, o / 10, 1] * m_1)]) → F_1Polygon(U', N'_{2}, T'_{1}, F_1) → q2', u', n'_{2}, t'_{1}, p_1Vector(D, E_1) → q_1Translate(H, Vector[(If[o < 10, o / 10, 1] * q_1)]) → H'Translate(V, Vector[(If[o < 10, o / 10, 1] * q_1)]) → V'_{1}Translate(N, Vector[(If[o < 10, o / 10, 1] * q_1)]) → N'_{3}Translate(U, Vector[(If[o < 10, o / 10, 1] * q_1)]) → U'_{1}Polygon(H', V'_{1}, N'_{3}, U'_{1}) → q3', h', v'_{1}, n'_{3}, u'_{1}Segment(C', A') → r_1Prism(Q, 1) → s_1, G_1, arête1, arête2, arête4, arête3, arête5, arête7, arête8, arête6, H_1, I_1, J_1, face1, face3, face4, face2, face5Prism(q1, 1) → d_2, K_1, arête10, arête9, arête12, arête11, arête13, arête15, arête16, arête14, L_1, M_1, N_1, face6, face7, face9, face8, face10Prism(triang, 1) → f_2, O_1, arête19, arête20, arête22, arête21, P_1, Q_1, face12, face14, face13, face11, arête17, arête18Prism(q3', 1) → g_2, R_1, arête23, arête24, arête25, arête26, arête27, arête29, arête30, arête28, S_1, T_1, U_1, face15, face17, face18, face16, face19Prism(q5', 1) → h_2, V_1, arête31, arête32, arête33, arête34, arête35, arête37, arête38, arête36, W_1, Z_1, A_2, face20, face22, face23, face21, face24Prism(q2', 1) → j_2, B_2, arête39, arête40, arête41, arête42, arête43, arête45, arête46, arête44, D_2, E_2, F_2, face25, face27, face28, face26, face29Prism(q4', 1) → k_2, G_2, arête47, arête48, arête49, arête50, arête51, arête53, arête54, arête52, H_2, J_2, K_2, face30, face32, face33, face31, face34Prism(Q'_{1}, 1) → l_2, L_2, arête55, arête56, arête57, arête58, arête59, arête61, arête62, arête60, M_2, N_2, O_2, face35, face37, face38, face36, face39Prism(S, 1) → m_2, P_2, arête63, arête64, arête65, arête66, arête67, arête69, arête70, arête68, Q_2, R_2, S_2, face40, face42, face43, face41, face44Angle(O_1, Q_1, P_1) → κ
AI Drawing Prompt Reference
Draw a planar construction driven by midpoints, 90° rotations, and arc intersections: start with a base segment defined by two initial points, take a midpoint to create a rotated point forming a right-triangle corner, then use the three points to define an arc whose intersection determines a new vertex; connect the resulting vertices to form the first polygon. Continue the same pattern by rotating key points by 90° into other positions and forming additional polygons that capture corresponding right-triangle/quad regions, along with angle markings and several perpendicular/orthogonal lines created via intersections. Take the centroids of the generated polygonal regions and form a direction vector between centroids; finally translate selected rotated points along that vector to produce a parallel, offset copy of the configuration while maintaining the original auxiliary intersections and perpendicular relations.
The prompt above was compiled from the original drawing commands and is for reference only.