Billiards on Ellipse 1

Billiards on Ellipse 1
Loading the math board and drawing, please wait…
2018-04-20 22:47
This example demonstrates the continuous trajectory of a billiard ball (a point mass) moving in straight segments and reflecting off the boundary of an ellipse. The core mathematical concept is the optical property of the ellipse: a ray emanating from one focus reflects off the ellipse and passes through the other focus, leading to closed or quasi-periodic billiard paths. Construction highlights: using GeoGebra commands such as Point, Ellipse, Line, Tangent, Mirror, Segment, and Intersect, the example builds the ellipse c, an initial point A, an incident line f, a tangent at the contact point B, the reflected line h via the Mirror command, and then iteratively computes intersections to generate multiple reflected segments (i, j, k, l, m, n, p, q, r, s, t, etc.), forming the complete rebound path. Suitable for high school and above students to explore ellipse geometry, reflection laws, and dynamic geometric construction, as well as for university-level analytic geometry or optics simulations of reflection trajectories.

GeoGebra Commands & Parameters

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

AI Drawing Prompt Reference

Draw an ellipse. From a point on the ellipse, draw a line segment toward one focus. At the point where this segment meets the ellipse, construct the tangent line, then reflect the incoming segment across the tangent to get the outgoing segment, which will pass through the other focus. Repeat this process: from each new intersection point, draw the tangent, reflect the incoming line, and find the next intersection, generating a series of connected line segments that form the billiard trajectory inside the ellipse. The final figure shows the ellipse, the initial point, and multiple tangent and reflected segments illustrating the optical property.
The prompt above was compiled from the original drawing commands and is for reference only.