Billiards on Ellipse 1
Loading the math board and drawing, please wait…
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
Point(xAxis) → A_1Point(xAxis) → B_1Ellipse(A_1, B_1, A) → cPoint(c) → BLine(A, B) → fTangent(B, c) → g,Mirror(f, g) → f'Segment(A, B) → hIntersect(c, f', 2) → CSegment(B, C) → iTangent(C, c) → j,Mirror(f', j) → f''Intersect(c, f'', 2) → ESegment(C, E) → kTangent(E, c) → l,Mirror(f'', l) → f'''Intersect(c, f''', 2) → FSegment(E, F) → mTangent(F, c) → n,Mirror(f''', n) → pIntersect(c, p, 2) → GSegment(G, F) → qTangent(G, c) → r,Mirror(p, r) → p'Intersect(c, p', 2) → HTangent(H, c) → s,Mirror(p', s) → p''Segment(G, H) → tIntersect(c, p'', 2) → ITangent(I, c) → a,Mirror(p'', a) → p'''Segment(I, H) → bIntersect(c, p''', 2) → JTangent(J, c) → d,Mirror(p''', d) → eIntersect(c, e, 2) → KSegment(K, J) → f_1Tangent(K, c) → g_1,Mirror(e, g_1) → e'Intersect(c, e', 2) → LSegment(L, K) → h_1Tangent(L, c) → i_1,Mirror(e', i_1) → e''Intersect(c, e'', 2) → MSegment(M, L) → j_1Tangent(M, c) → k_1,Mirror(e'', k_1) → e'''Intersect(c, e''', 2) → NSegment(N, M) → l_1Tangent(N, c) → m_1,Mirror(e''', m_1) → n_1Intersect(c, n_1, 2) → OSegment(I, J) → p_1Line(M, N) → q_1Tangent(N, c) → r_1,Mirror(q_1, r_1) → s_1Line(O, N) → t_1Tangent(O, c) → a_1,Mirror(t_1, a_1) → b_1Intersect(c, b_1, 1) → QSegment(O, N) → c_1Segment(Q, O) → d_1Tangent(Q, c) → e_1,Mirror(b_1, e_1) → f_2Intersect(c, f_2, 1) → RSegment(R, Q) → g_2Segment(Q, R) → h_2Tangent(R, c) → i_2,Mirror(f_2, i_2) → j_2Intersect(c, j_2, 1) → SSegment(S, R) → k_2Tangent(S, c) → l_2,Mirror(j_2, l_2) → m_2Intersect(c, m_2, 1) → TSegment(T, S) → n_2Tangent(T, c) → p_2,Mirror(m_2, p_2) → q_2Intersect(c, q_2, 1) → USegment(U, T) → r_2Segment(U, T) → s_2Tangent(U, c) → t_2,Mirror(q_2, t_2) → a_2Intersect(c, a_2, 1) → VSegment(V, U) → b_2Tangent(V, c) → c_2,Mirror(a_2, c_2) → d_2Intersect(c, d_2, 1) → WLine(V, U) → e_2Tangent(V, c) → f_3,Mirror(e_2, f_3) → g_3Segment(V, W) → h_3Tangent(W, c) → i_3,Mirror(g_3, i_3) → j_3Intersect(c, j_3, 1) → DSegment(D, W) → k_3Tangent(D, c) → l_3,Mirror(j_3, l_3) → m_3Intersect(c, m_3, 1) → PSegment(P, D) → n_3Tangent(P, c) → p_3,Mirror(m_3, p_3) → q_3Intersect(c, q_3, 1) → ZSegment(Z, P) → r_3Tangent(Z, c) → s_3,Mirror(q_3, s_3) → t_3Intersect(c, t_3, 1) → C_1Segment(C_1, Z) → a_3Tangent(C_1, c) → b_3,Mirror(t_3, b_3) → c_3Intersect(c, c_3, 1) → D_1Segment(D_1, C_1) → d_3Line(D_1, C_1) → e_3Tangent(D_1, c) → f_4,Mirror(e_3, f_4) → g_4Intersect(c, g_4, 1) → E_1Segment(E_1, D_1) → h_4Tangent(E_1, c) → i_4,Mirror(g_4, i_4) → j_4Intersect(c, j_4, 1) → F_1Segment(F_1, E_1) → k_4Tangent(F_1, c) → l_4,Mirror(j_4, l_4) → m_4Intersect(c, m_4, 1) → G_1Segment(G_1, F_1) → n_4Tangent(G_1, c) → p_4,Mirror(m_4, p_4) → q_4Intersect(c, q_4, 1) → H_1Segment(H_1, G_1) → r_4Tangent(H_1, c) → s_4,Mirror(q_4, s_4) → t_4Intersect(c, t_4, 1) → I_1Segment(I_1, H_1) → a_4Tangent(I_1, c) → b_4,Mirror(t_4, b_4) → c_4Intersect(c, c_4, 1) → J_1Segment(J_1, I_1) → d_4Tangent(J_1, c) → e_4,Mirror(c_4, e_4) → f_5Intersect(c, f_5, 1) → K_1Segment(K_1, J_1) → g_5Tangent(K_1, c) → h_5,Mirror(f_5, h_5) → i_5Intersect(c, i_5, 1) → L_1Segment(L_1, K_1) → j_5Tangent(L_1, c) → k_5,Mirror(i_5, k_5) → l_5Intersect(c, l_5, 1) → M_1Segment(M_1, L_1) → m_5Line(M_1, L_1) → n_5Tangent(M_1, c) → p_5,Mirror(n_5, p_5) → q_5Intersect(c, q_5, 1) → N_1Segment(M_1, N_1) → r_5Tangent(N_1, c) → s_5,Mirror(q_5, s_5) → t_5Intersect(c, t_5, 1) → O_1Tangent(O_1, c) → a_5,Mirror(t_5, a_5) → b_5Intersect(c, b_5, 1) → P_1Segment(P_1, O_1) → c_5Tangent(P_1, c) → d_5,Mirror(b_5, d_5) → e_5Intersect(c, e_5, 1) → Q_1Segment(Q_1, P_1) → f_6Tangent(Q_1, c) → g_6,Mirror(e_5, g_6) → h_6Intersect(c, h_6, 1) → R_1Segment(R_1, Q_1) → i_6Tangent(R_1, c) → j_6,Mirror(h_6, j_6) → k_6Intersect(c, k_6, 1) → S_1Segment(S_1, R_1) → l_6Tangent(S_1, c) → m_6,Mirror(k_6, m_6) → n_6Intersect(c, n_6, 1) → T_1Segment(T_1, S_1) → p_6Tangent(T_1, c) → q_6,Mirror(n_6, q_6) → r_6Intersect(c, r_6, 1) → U_1Segment(U_1, T_1) → s_6Tangent(U_1, c) → t_6,Mirror(r_6, t_6) → a_6Intersect(c, a_6, 1) → V_1Segment(V_1, U_1) → b_6Tangent(V_1, c) → c_6,Mirror(a_6, c_6) → d_6Intersect(c, d_6, 1) → W_1Segment(W_1, V_1) → e_6Tangent(W_1, c) → f_7,Mirror(d_6, f_7) → g_7Intersect(c, g_7, 1) → Z_1Segment(U_1, T_1) → h_7Segment(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.