Billiard Trajectory on Trapezoidal Table

Billiard Trajectory on Trapezoidal Table
Loading the math board and drawing, please wait…
2013-12-15 17:11
This example demonstrates the calculation and visualization of rebound angles on a trapezoidal billiard table. It involves core mathematical concepts such as angles, reflection laws, trigonometric functions, and vector operations. GeoGebra commands/objects used include Rotate, Line, Point, Segment, OrthogonalLine, Angle, Mirror, Intersect, Vector, and Polygon. Suitable for high school mathematics education to understand geometric transformations, reflection principles, and the application of trigonometric functions.

GeoGebra Commands & Parameters

  1. Rotate(B, -o - 90°, A) → C'
  2. Line(A, C') → k_2
  3. Point(k_2) → D
  4. Segment(A, B) → a_1
  5. Segment(A, C_1) → b_1
  6. Line(C_1, a_1) → a
  7. OrthogonalLine(B, a) → b
  8. Point(b_1) → D_1
  9. Point(a_1) → E
  10. Segment(D_1, E) → e
  11. Angle(A, E, D_1) → α
  12. OrthogonalLine(E, a_1) → f
  13. Mirror(D_1, f) → D'
  14. Angle(D', E, B) → β
  15. Line(E, D') → g
  16. Intersect(a, b) → C
  17. Segment(B, C) → h
  18. Segment(C, C_1) → j
  19. Line(E, D') → i
  20. Line(A, B) → c
  21. Line(A, C_1) → d
  22. Line(E, D') → k
  23. Intersect(k, h) → H
  24. Intersect(k, j) → F
  25. Segment(E, H) → l
  26. Segment(E, F) → m
  27. OrthogonalLine(H, h) → n
  28. Mirror(E, n) → E'
  29. Mirror(H, n) → H'
  30. Segment(E', H') → l'
  31. Line(H, E') → p
  32. Intersect(p, j) → I
  33. Intersect(p, b_1) → J
  34. Segment(J, H) → q
  35. Segment(I, H) → r
  36. OrthogonalLine(F, j) → s
  37. Mirror(E, s) → E'_1
  38. Mirror(F, s) → F'
  39. Segment(E'_1, F') → m'
  40. Line(F, E'_1) → t
  41. Intersect(t, h) → K
  42. Segment(F, K) → c_1
  43. OrthogonalLine(K, h) → d_1
  44. Mirror(F, d_1) → F'_1
  45. Mirror(K, d_1) → K'
  46. Segment(F'_1, K') → e_1
  47. Line(K, F'_1) → f_1
  48. Intersect(f_1, a_1) → L
  49. Segment(K, L) → g_1
  50. OrthogonalLine(I, j) → h_1
  51. Mirror(I, h_1) → I'
  52. Mirror(H, h_1) → H'_1
  53. Segment(I', H'_1) → r'
  54. Line(I, H'_1) → i_1
  55. Intersect(i_1, b_1) → M
  56. Segment(I, M) → j_1
  57. OrthogonalLine(L, a_1) → k_1
  58. Mirror(K, k_1) → K'_1
  59. Mirror(L, k_1) → L'
  60. Segment(K'_1, L') → l_1
  61. Line(L, K'_1) → m_1
  62. Intersect(m_1, j) → N
  63. OrthogonalLine(N, j) → n_1
  64. Mirror(m_1, n_1) → p_1
  65. Intersect(p_1, b_1) → O
  66. Segment(L, N) → q_1
  67. Segment(N, O) → r_1
  68. OrthogonalLine(I, j) → s_1
  69. Mirror(I, s_1) → I'_1
  70. Mirror(H, s_1) → H'_2
  71. Segment(I'_1, H'_2) → r'_1
  72. Line(I, H'_2) → t_1
  73. Intersect(t_1, a_1) → P
  74. Segment(P, I) → a_2
  75. OrthogonalLine(P, a_1) → b_2
  76. Mirror(P, b_2) → P'
  77. Mirror(I, b_2) → I'_2
  78. Segment(P', I'_2) → c_2
  79. Line(P, I'_2) → d_2
  80. Intersect(d_2, b_1) → Q
  81. Segment(P, Q) → e_2
  82. OrthogonalLine(L, a_1) → f_2
  83. Mirror(K, f_2) → K'_2
  84. Mirror(L, f_2) → L'_1
  85. Segment(K'_2, L'_1) → g_2
  86. Line(L, K'_2) → h_2
  87. Intersect(h_2, b_1) → R
  88. Segment(L, R) → i_2
  89. Segment(A, C') → j_2
  90. Angle(H, C, I) → δ
  91. Angle(A, B, C) → ε
  92. Angle(C, I, H) → ζ
  93. Angle(M, I, D) → η
  94. Angle(E, D_1, A) → θ
  95. OrthogonalLine(F', j) → l_2
  96. Mirror(E, l_2) → E'_2
  97. Mirror(F, l_2) → F'_2
  98. Segment(E'_2, F'_2) → m'_1
  99. Line(F', E'_2) → m_2
  100. Intersect(m_2, a_1) → G
  101. Segment(G, F') → n_2
  102. OrthogonalLine(G, a_1) → p_2
  103. Mirror(G, p_2) → G'
  104. Mirror(F', p_2) → F''
  105. Segment(G', F'') → q_2
  106. Line(F'', G) → r_2
  107. Intersect(r_2, h) → S
  108. Segment(G, S) → s_2
  109. OrthogonalLine(S, h) → t_2
  110. Mirror(G, t_2) → G'_1
  111. Mirror(S, t_2) → S'
  112. Segment(G'_1, S') → a_3
  113. Line(S, G'_1) → b_3
  114. Intersect(j, b_3) → T
  115. Segment(S, T) → c_3
  116. OrthogonalLine(T, j) → d_3
  117. Mirror(S, d_3) → S'_1
  118. Mirror(T, d_3) → T'
  119. Segment(S'_1, T') → e_3
  120. Line(T, S'_1) → f_3
  121. Intersect(f_3, a_1) → U
  122. Segment(U, T) → g_3
  123. OrthogonalLine(U, a_1) → h_3
  124. Mirror(U, h_3) → U'
  125. Mirror(T, h_3) → T'_1
  126. Segment(U', T'_1) → i_3
  127. Line(U, T'_1) → j_3
  128. Intersect(j_3, j) → V
  129. OrthogonalLine(V, j) → k_3
  130. Mirror(j_3, k_3) → l_3
  131. Intersect(l_3, b_1) → W
  132. Segment(W, V) → m_3
  133. Segment(V, U) → n_3
  134. OrthogonalLine(V, j) → p_3
  135. Mirror(V, p_3) → V'
  136. Mirror(U, p_3) → U'_1
  137. Segment(V', U'_1) → q_3
  138. Line(V, U'_1) → r_3
  139. Intersect(r_3, b_1) → Z
  140. Segment(Z, V) → s_3
  141. OrthogonalLine(N, j) → t_3
  142. Mirror(L, t_3) → L'_2
  143. Mirror(N, t_3) → N'
  144. Segment(L'_2, N') → a_4
  145. Line(N, L'_2) → b_4
  146. Intersect(b_4, a_1) → A_1
  147. OrthogonalLine(A_1, a_1) → c_4
  148. Segment(A_1, N) → d_4
  149. Mirror(A_1, c_4) → B_1
  150. Mirror(N, c_4) → N'_1
  151. Segment(B_1, N'_1) → e_4
  152. Line(N'_1, A_1) → f_4
  153. Intersect(f_4, b_1) → E_1
  154. Segment(A_1, E_1) → g_4
  155. OrthogonalLine(U, a_1) → h_4
  156. Mirror(U, h_4) → U'_2
  157. Mirror(T, h_4) → T'_2
  158. Segment(U'_2, T'_2) → i_4
  159. Line(U, T'_2) → j_4
  160. Intersect(j_4, b_1) → F_1
  161. Segment(U, F_1) → k_4
  162. OrthogonalLine(V, j) → l_4
  163. Mirror(V, l_4) → V'_1
  164. Mirror(U, l_4) → U'_3
  165. Segment(V'_1, U'_3) → m_4
  166. Line(U'_3, V) → n_4
  167. Intersect(n_4, a_1) → G_1
  168. OrthogonalLine(G_1, a_1) → p_4
  169. Mirror(n_4, p_4) → q_4
  170. Intersect(q_4, b_1) → H_1
  171. Segment(H_1, G_1) → r_4
  172. Segment(G_1, V) → s_4
  173. OrthogonalLine(G, a_1) → t_4
  174. Mirror(G, t_4) → G'_2
  175. Mirror(F', t_4) → F''_1
  176. Segment(G'_2, F''_1) → a_5
  177. Line(G, F''_1) → b_5
  178. Intersect(b_5, j) → I_1
  179. OrthogonalLine(I_1, j) → c_5
  180. Mirror(b_5, c_5) → d_5
  181. Intersect(d_5, h) → J_1
  182. OrthogonalLine(J_1, h) → e_5
  183. Mirror(d_5, e_5) → f_5
  184. Intersect(f_5, a_1) → K_1
  185. OrthogonalLine(K_1, a_1) → g_5
  186. Mirror(f_5, g_5) → h_5
  187. Intersect(h_5, j) → L_1
  188. OrthogonalLine(L_1, j) → i_5
  189. Segment(G, I_1) → j_5
  190. Segment(I_1, J_1) → k_5
  191. Segment(J_1, K_1) → l_5
  192. Segment(K_1, L_1) → m_5
  193. Mirror(h_5, i_5) → n_5
  194. Intersect(n_5, a_1) → M_1
  195. OrthogonalLine(M_1, a_1) → p_5
  196. Mirror(n_5, p_5) → q_5
  197. Intersect(q_5, j) → N_1
  198. OrthogonalLine(N_1, j) → r_5
  199. Mirror(q_5, r_5) → s_5
  200. Intersect(s_5, b_1) → O_1
  201. Segment(O_1, N_1) → t_5
  202. Segment(N_1, M_1) → a_6
  203. Segment(M_1, L_1) → b_6
  204. Angle(C, D, A) → ι
  205. Vector(D_1, E) → u
  206. Polygon(A, B, C, D) → poly1, a_7, b_7, c_6, d_6

AI Drawing Prompt Reference

Draw a trapezoidal billiard table with a horizontal bottom edge. From the top-left vertex, draw a ray down to the bottom edge, marking the initial path. Choose a point on the bottom edge as the impact point, and draw a segment from this point into the table representing the ball's direction. At the impact point, construct a perpendicular line to the bottom edge, then reflect the incoming segment across this perpendicular to get the outgoing path. Extend this reflected path until it hits another side of the table, then again construct a perpendicular at that intersection and reflect the path. Repeat this process on each side, creating a polyline trajectory that bounces around the table. Label the incident and reflected angles, and show the normal lines as dashed. The final figure illustrates the complete multi-bounce path of the ball on the trapezoidal table.
The prompt above was compiled from the original drawing commands and is for reference only.