Square in a Right-angled Triangle

Square in a Right-angled Triangle
Loading the math board and drawing, please wait…
2016-03-05 16:38
This example demonstrates how to construct a square inside a right-angled triangle. It involves core mathematical concepts such as geometric construction, coordinate geometry, transformation, and optimization. Key GeoGebra commands and objects used include Polygon, Intersect, Segment, Point, Min, If, Max, and Rotate. Suitable for high school mathematics teaching or exploration by geometry enthusiasts.

GeoGebra Commands & Parameters

  1. Polygon(A, B, C) → poly1, c, a, b
  2. Intersect(Line[C, C + (1, 1)], c) → D
  3. Polygon(C, E, D, F) → poly2, c_1, e, d, f
  4. Polygon(A, D, E) → poly3, e_1, a_1, d_1
  5. Polygon(D, B, F) → poly4, f_1, d_2, b_1
  6. Segment(G, G + (9, 0)) → g
  7. Point(g) → H
  8. Min((x(H) - x(G)) / (g / 3), 1) → t1
  9. If(x(H) < x(G) + 3, 0, If[x(H) < x(G) + 6, (x(H) - x(G) - g / 3) / (g / 3), 1]) → t2
  10. Max((x(H) - x(G) - (2 * g / 3)) / (g / 3), 0) → t3
  11. Rotate(Polygon[Translate[C, Vector[(t1 * Vector[C, I])]], Translate[E, Vector[(t1 * Vector[C, I])]], Translate[D, Vector[(t1 * Vector[C, I])]], Translate[F, Vector[(t1 * Vector[C, I])]]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → poly5
  12. Rotate(Polygon[Translate[A, Vector[(t1 * Vector[C, I])]], Translate[D, Vector[(t1 * Vector[C, I])]], Translate[E, Vector[(t1 * Vector[C, I])]]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → poly6
  13. Rotate(Polygon[Translate[D, Vector[(t1 * Vector[C, I])]], Translate[B, Vector[(t1 * Vector[C, I])]], Translate[F, Vector[(t1 * Vector[C, I])]]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → poly7
  14. Rotate(Translate[D, Vector[(t1 * Vector[C, I])]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → J
  15. Rotate(Translate[E, Vector[(t1 * Vector[C, I])]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → K
  16. Rotate(Translate[F, Vector[(t1 * Vector[C, I])]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → L
  17. Rotate(Polygon[Translate[C, Vector[(t2 * Vector[C, M])]], Translate[E, Vector[(t2 * Vector[C, M])]], Translate[D, Vector[(t2 * Vector[C, M])]], Translate[F, Vector[(t2 * Vector[C, M])]]], 0°, Translate[C, Vector[(t2 * Vector[C, M])]]) → poly8
  18. Rotate(Polygon[Translate[D, Vector[(t2 * Vector[C, M])]], Translate[B, Vector[(t2 * Vector[C, M])]], Translate[F, Vector[(t2 * Vector[C, M])]]], 0°, Translate[C, Vector[(t2 * Vector[C, M])]]) → poly9
  19. Rotate(Translate[poly7, Vector[(t2 * Vector[J, N])]], 0°, Translate[J, Vector[(t2 * Vector[J, N])]]) → poly10
  20. Rotate(Translate[poly6, Vector[(t3 * Vector[B, N])]], ((t3 * 90))°, Translate[B, Vector[(t3 * Vector[B, N])]]) → poly11
  21. Rotate(Translate[poly5, Vector[(t3 * Vector[B, N])]], ((t3 * 90))°, Translate[B, Vector[(t3 * Vector[B, N])]]) → poly12
  22. Rotate(Polygon[Translate[A, Vector[(t3 * Vector[D, N])]], Translate[D, Vector[(t3 * Vector[D, N])]], Translate[E, Vector[(t3 * Vector[D, N])]]], ((t3 * 90))°, Translate[D, Vector[(t3 * Vector[D, N])]]) → poly13
  23. Polygon(C, E, D, F) → poly14, c_2, e_2, d_3, f_2
  24. Polygon(A, D, E) → poly15, e_3, a_2, d_4
  25. Polygon(D, B, F) → poly16, f_3, d_5, b_2
  26. Rotate(Polygon[Translate[C, Vector[(t1 * Vector[C, I])]], Translate[E, Vector[(t1 * Vector[C, I])]], Translate[D, Vector[(t1 * Vector[C, I])]], Translate[F, Vector[(t1 * Vector[C, I])]]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → poly17
  27. Rotate(Polygon[Translate[D, Vector[(t1 * Vector[C, I])]], Translate[B, Vector[(t1 * Vector[C, I])]], Translate[F, Vector[(t1 * Vector[C, I])]]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → poly18
  28. Rotate(Polygon[Translate[A, Vector[(t1 * Vector[C, I])]], Translate[D, Vector[(t1 * Vector[C, I])]], Translate[E, Vector[(t1 * Vector[C, I])]]], ((t1 * 180))°, Translate[C, Vector[(t1 * Vector[C, I])]]) → poly19
  29. Rotate(Polygon[Translate[C, Vector[(t2 * Vector[C, M])]], Translate[E, Vector[(t2 * Vector[C, M])]], Translate[D, Vector[(t2 * Vector[C, M])]], Translate[F, Vector[(t2 * Vector[C, M])]]], 0°, Translate[C, Vector[(t2 * Vector[C, M])]]) → poly20
  30. Rotate(Polygon[Translate[D, Vector[(t2 * Vector[C, M])]], Translate[B, Vector[(t2 * Vector[C, M])]], Translate[F, Vector[(t2 * Vector[C, M])]]], 0°, Translate[C, Vector[(t2 * Vector[C, M])]]) → poly21
  31. Rotate(Translate[poly7, Vector[(t2 * Vector[J, N])]], 0°, Translate[J, Vector[(t2 * Vector[J, N])]]) → poly22
  32. Rotate(Polygon[Translate[A, Vector[(t3 * Vector[D, N])]], Translate[D, Vector[(t3 * Vector[D, N])]], Translate[E, Vector[(t3 * Vector[D, N])]]], ((t3 * 90))°, Translate[D, Vector[(t3 * Vector[D, N])]]) → poly23
  33. Rotate(Translate[poly6, Vector[(t3 * Vector[B, N])]], ((t3 * 90))°, Translate[B, Vector[(t3 * Vector[B, N])]]) → poly24
  34. Rotate(Translate[poly5, Vector[(t3 * Vector[B, N])]], ((t3 * 90))°, Translate[B, Vector[(t3 * Vector[B, N])]]) → poly25
  35. Segment(B, I) → h
  36. Segment(A, I) → i
  37. Segment(M, N) → j
  38. Segment(N, Q) → k
  39. Segment(P, Q) → l
  40. Segment(M, P) → m
  41. Segment(R, N) → n
  42. Segment(R, S) → p
  43. Segment(S, Q) → q