Cutting Equilateral Triangles into Rectangles & Dudeney's Puzzle

Cutting Equilateral Triangles into Rectangles & Dudeney's Puzzle
Loading the math board and drawing, please wait…
2015-07-24 19:03
This example demonstrates how to dissect an equilateral triangle into a rectangle and investigates the positions of the dissection points. It involves core mathematical concepts like equilateral triangles, rectangles, coordinate geometry, vectors, rotations, and geometric transformations. The construction utilizes GeoGebra commands and objects such as UnitVector, Segment, Intersect, Point, If, Circle, Rotate, Polygon, Angle, UnitOrthogonalVector, Distance, OrthogonalVector, Translate, and Midpoint. Suitable for high school and above, it helps learners understand geometric dissection and transformation principles, enhancing spatial reasoning skills.

GeoGebra Commands & Parameters

  1. UnitVector(Vector[A, B]) → u
  2. Segment(A, B) → c
  3. Segment(C, B) → a
  4. Intersect(OrthogonalLine[Midpoint[a], c], c) → G'
  5. Point(Segment[A, G']) → E
  6. If(x(E) < x(A + c / 2 * u), E + c / 2 * u, B) → M
  7. If(x(E) < x(A) + c / 2, {Segment[E, M - 0.03 * c * u], M, Segment[M + 0.03 * c * u, B]}, {Segment[E, B]}) → list1
  8. Segment(A, C) → b
  9. Intersect(OrthogonalLine[Midpoint[b], c], c) → G
  10. Circle(Midpoint[a], sqrt(Distance[A, a] * a / 2)) → k_1
  11. Intersect(k_1, c) → S, T
  12. If(γ < 180°, γ, 180*°) → θ
  13. UnitVector(Vector[B, C]) → v
  14. Point(a) → D
  15. Rotate(B, θ, D) → P
  16. If(γ < 180°, 0*°, γ - 180°) → ϕ
  17. Point(list1) → F
  18. Rotate(F, Angle[B, D, P], D) → F'
  19. Rotate(E, Angle[B, D, P], D) → E'
  20. UnitVector(Vector[A, C]) → w
  21. Point(b) → I
  22. Segment(D, E) → d
  23. Rotate(D, Angle[B, D, P], D) → D'
  24. Rotate(B, Angle[B, D, P], D) → B'
  25. Polygon(D', E', B') → poly1, b', d', e'
  26. Intersect(OrthogonalLine[I, d], d) → J
  27. Rotate(A, -θ, I) → K
  28. Rotate(I, Angle[A, I, K], I) → I'
  29. Rotate(J, Angle[A, I, K], I) → J'
  30. Rotate(E, Angle[A, I, K], I) → E'_1
  31. Rotate(A, Angle[A, I, K], I) → A'
  32. Polygon(C, D, J, I) → poly5, c_1, d_2, j, i
  33. Intersect(OrthogonalLine[F, d], d) → L
  34. Rotate(L, Angle[B, D, P], D) → L'
  35. Polygon(P, D, L', F') → poly3, e, f, g, h
  36. Segment(L, F) → k
  37. Segment(I, J) → l
  38. Rotate(E', ϕ, F') → N
  39. Polygon(I', J', E'_1, A') → poly4, i', j', e'_1, a'
  40. Rotate(E', Angle[E', F', N], F') → E''_1
  41. Rotate(L', Angle[E', F', N], F') → L''_1
  42. Rotate(F', Angle[E', F', N], F') → F''_1
  43. Polygon(E''_1, L''_1, F''_1) → poly6, f''_1, e''_1, l''_1
  44. Angle(j, d) → β
  45. Angle(F, L, D) → α
  46. UnitOrthogonalVector(u) → z
  47. Distance(D, A) → DA
  48. UnitVector(Vector[F''_1, L''_1]) → u_1
  49. Segment(L''_1 + 0.15 * u_1, L''_1 + 0.4 * u_1) → a_1
  50. OrthogonalVector(u_1) → v_1
  51. Segment(Midpoint[a_1], Translate[Midpoint[a_1], Vector[(f''_1 + j') * v_1]]) → b_1
  52. Translate(a_1, Vector[(f''_1 + j') * v_1]) → d_1
  53. Midpoint(b_1) → Q
  54. Segment(L''_1 - 0.15 * v_1, L''_1 - 0.4 * v_1) → e_1
  55. Segment(Midpoint[e_1], Translate[Midpoint[e_1], Vector[-(e''_1 + g) * u_1]]) → f_1
  56. Translate(e_1, Vector[-(e''_1 + g) * u_1]) → g_1
  57. Midpoint(f_1) → R
  58. Midpoint(Midpoint[a], B) → H
  59. Midpoint(Midpoint[a], C) → O
  60. UnitOrthogonalVector(Segment[Midpoint[a], Intersect[LineBisector[a], Line[A, a]]]) → n
  61. Intersect(a, OrthogonalLine[A, a]) → U
  62. Segment(I, C) → m
  63. Segment(I, A) → r
  64. Segment(D, C) → p
  65. Segment(D, B) → s
  66. Segment(B, F) → t
  67. Segment(E, F) → h_1
  68. Segment(E, A) → i_1
  69. Segment(E, J) → q
  70. Segment(J, L) → j_1
  71. Segment(L, D) → l_1
  72. Circle(Midpoint[a], sqrt(Distance[A, a] * a / 2)) → p_1
  73. Segment(A, Intersect[a, OrthogonalLine[A, a]]) → m_1
  74. Segment(Midpoint[a], S) → n_1
  75. Angle(A, Intersect[a, OrthogonalLine[A, a]], B) → δ
  76. Segment(I, E) → q_1
  77. Angle(I, E, A) → ε
  78. Segment(F, D) → r_1
  79. Angle(D, F, B) → ζ