Pythagora’s Puzzle: Build right-triangle relations via rotation and construction

Pythagora’s Puzzle: Build right-triangle relations via rotation and construction
Loading the math board and drawing, please wait…
2021-01-24 17:21
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

  1. Midpoint(C, B) → C_3
  2. Rotate(B, 90°, C_3) → C_2
  3. Angle(B, C_3, C_2) → α
  4. CircleArc(C_3, C_2, C) → c
  5. Point(c) → A
  6. Polygon(C, B, A) → triang, c_{2}, a, b
  7. Rotate(A, 90°, C) → F
  8. Angle(A, C, F) → β
  9. Rotate(C, 90°, F) → G
  10. Angle(C, F, G) → γ
  11. Polygon(C, A, G, F) → Q, a_1, e_1, g, f
  12. Rotate(B, 90°, A) → H
  13. Angle(B, A, H) → δ
  14. Rotate(A, 90°, H) → I_2
  15. Angle(A, H, I_2) → ε
  16. Polygon(A, B, I_2, H) → R, e_2, b_1, i, h
  17. Rotate(C, 90°, B) → J
  18. Angle(C, B, J) → ζ
  19. Rotate(B, 90°, J) → K
  20. Angle(B, J, K) → η
  21. Polygon(C, B, J, K) → S, a_2, b_2, j, k
  22. Midpoint(A, I_2) → N
  23. OrthogonalLine(N, a_2) → l
  24. OrthogonalLine(N, l) → m
  25. Intersect(l, e_2) → O
  26. Intersect(m, b_1) → T
  27. Intersect(l, i) → U
  28. Intersect(m, h) → V
  29. Distance(N, T) → n
  30. Angle(N, T, B) → θ
  31. Distance(T, B) → o_{3}
  32. Angle(C, A, B) → ι
  33. Polygon(A, B, I_2, H) → q1, c_3, b_3, e, h_3
  34. Polygon(U, N, T, I_2) → q2, u, n_1, t, i_2
  35. Polygon(H, V, N, U) → q3, h_1, v, n_2, u_1
  36. Polygon(V, A, O, N) → q4, v_1, c_1, o_1, n_3
  37. Polygon(N, T, B, O) → q5, n_4, t_1, b_4, o_2
  38. Centroid(q3) → D
  39. Centroid(q2) → E
  40. Centroid(q5) → I
  41. Centroid(q4) → L
  42. Centroid(Q) → M
  43. Centroid(S) → P
  44. Vector(M, P) → w
  45. Translate(C, Vector[(If[o < 10, o / 10, 1] * w)]) → A'
  46. Translate(A, Vector[(If[o < 10, o / 10, 1] * w)]) → C'
  47. Translate(G, Vector[(If[o < 10, o / 10, 1] * w)]) → G'
  48. Translate(F, Vector[(If[o < 10, o / 10, 1] * w)]) → F'
  49. Polygon(A', C', G', F') → Q', a', c', g', f'
  50. Translate(G, w) → G'_{1}
  51. Translate(A, w) → C'_{1}
  52. Translate(F, w) → F'_{1}
  53. Translate(C, w) → A'_{1}
  54. Line(G'_{1}, C'_{1}) → p
  55. Line(G'_{1}, F'_{1}) → q
  56. Line(F'_{1}, A'_{1}) → r
  57. Line(C'_{1}, A'_{1}) → s
  58. Intersect(p, b_2) → W
  59. Intersect(j, s) → Z
  60. Intersect(r, k) → A_1
  61. Polygon(C_3, B, W, G'_{1}) → q6, d, b_5, w_1, g'_{1}
  62. Polygon(C, C_3, F'_{1}, A_1) → q7, a_3, f_1, f'_{1}, g_1
  63. Polygon(A_1, A'_{1}, Z, K) → q8, i_1, a'_{1}, z_1, k_1
  64. Polygon(C'_{1}, Z, J, W) → q9, c'_{1}, z_2, j_1, w_2
  65. Centroid(q6) → B_1
  66. Centroid(q7) → C_1
  67. Centroid(q8) → D_1
  68. Centroid(q9) → E_1
  69. Vector(I, C_1) → d_1
  70. Translate(C, Vector[(If[o < 10, o / 10, 1] * w)]) → A'_{2}
  71. Translate(A, Vector[(If[o < 10, o / 10, 1] * w)]) → C'_{2}
  72. Translate(G, Vector[(If[o < 10, o / 10, 1] * w)]) → G'_{2}
  73. Translate(F, Vector[(If[o < 10, o / 10, 1] * w)]) → F'_{2}
  74. Polygon(A'_{2}, C'_{2}, G'_{2}, F'_{2}) → Q'_{1}, a'_{2}, c'_{2}, g'_{2}, f'_{2}
  75. Translate(N, Vector[(If[o < 10, o / 10, 1] * d_1)]) → N'
  76. Translate(T, Vector[(If[o < 10, o / 10, 1] * d_1)]) → T'
  77. Translate(B, Vector[(If[o < 10, o / 10, 1] * d_1)]) → B'
  78. Translate(O, Vector[(If[o < 10, o / 10, 1] * d_1)]) → O'
  79. Polygon(N', T', B', O') → q5', n', t', b', o'
  80. Vector(L, B_1) → l_1
  81. Translate(V, Vector[(If[o < 10, o / 10, 1] * l_1)]) → V'
  82. Translate(A, Vector[(If[o < 10, o / 10, 1] * l_1)]) → C'_{3}
  83. Translate(O, Vector[(If[o < 10, o / 10, 1] * l_1)]) → O'_{1}
  84. Translate(N, Vector[(If[o < 10, o / 10, 1] * l_1)]) → N'_{1}
  85. Polygon(V', C'_{3}, O'_{1}, N'_{1}) → q4', v', c'_{3}, o'_{1}, n'_{1}
  86. Vector(E, D_1) → m_1
  87. Translate(U, Vector[(If[o < 10, o / 10, 1] * m_1)]) → U'
  88. Translate(N, Vector[(If[o < 10, o / 10, 1] * m_1)]) → N'_{2}
  89. Translate(T, Vector[(If[o < 10, o / 10, 1] * m_1)]) → T'_{1}
  90. Translate(I_2, Vector[(If[o < 10, o / 10, 1] * m_1)]) → F_1
  91. Polygon(U', N'_{2}, T'_{1}, F_1) → q2', u', n'_{2}, t'_{1}, p_1
  92. Vector(D, E_1) → q_1
  93. Translate(H, Vector[(If[o < 10, o / 10, 1] * q_1)]) → H'
  94. Translate(V, Vector[(If[o < 10, o / 10, 1] * q_1)]) → V'_{1}
  95. Translate(N, Vector[(If[o < 10, o / 10, 1] * q_1)]) → N'_{3}
  96. Translate(U, Vector[(If[o < 10, o / 10, 1] * q_1)]) → U'_{1}
  97. Polygon(H', V'_{1}, N'_{3}, U'_{1}) → q3', h', v'_{1}, n'_{3}, u'_{1}
  98. Segment(C', A') → r_1
  99. Prism(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, face5
  100. Prism(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, face10
  101. Prism(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ête18
  102. Prism(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, face19
  103. Prism(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, face24
  104. Prism(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, face29
  105. Prism(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, face34
  106. Prism(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, face39
  107. Prism(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, face44
  108. Angle(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.