Total Internal Reflection in Diamond Geometry
Loading the math board and drawing, please wait…
This GeoGebra example demonstrates the geometric and physical phenomenon of total internal reflection within a diamond's faceted structure, showing how precise cutting leads to a brilliant sparkle. The core mathematical concepts involved include the critical angle of incidence, refractive index, Snell's law, and geometric transformations such as reflection, rotation, and angle bisection in polygonal domains. To construct this simulation, various GeoGebra commands are utilized: Segment, Ray, and Line are used to define the diamond's facets and light paths; Intersect calculates the boundary crossing points; OrthogonalLine and Angle determine the normal vectors and angles of incidence; conditional logic (If) is applied to check if the angle exceeds the critical angle to trigger total internal reflection; and Rotate, Circle, LineBisector, and Polygon commands are employed to trace complex light trajectories and construct the geometric facets. This applet is highly suitable for high school physics and geometry courses, as well as college-level applied mathematics or geometric modeling modules, serving as an interactive tool to visualize optical geometry and the mathematics behind gemstone cutting.
GeoGebra Commands & Parameters
Segment(A, C) → aPoint(a) → FSegment(G, F) → fLine(F, f) → gRay(I, E_1) → jPoint(j) → ESegment(D, E) → eSegment(B, E) → dIntersect(g, d) → HCircle(H, 1) → kOrthogonalLine(H, d) → iIntersect(k, i, 2) → JAngle(J, H, F) → αIf((180° > α) ∧ (α > asin(1 / n)), Rotate[J, -α, H]) → J'Line(H, J') → rIntersect(r, e) → MOrthogonalLine(M, e) → a_1Circle(M, 1) → tIntersect(t, a_1, 1) → NAngle(N, M, H) → δIf((360° - asin(1 / n) > δ) ∧ (δ > asin(1 / n)), Rotate[N, -δ, M]) → N'Line(M, N') → d_1Intersect(d_1, a) → QOrthogonalLine(Q, a) → i_1Circle(Q, 1) → h_1Intersect(h_1, i_1, 1) → SAngle(S, Q, M) → ζIntersect(h_1, i_1, 2) → RSegment(A, B) → bSegment(C, D) → cCircle(H, 2) → pIntersect(k, i, 1) → KSegment(J, K) → lAngle(J', H, J) → βRotate(K, asin(n * sin(α)), H) → K'Angle(K, H, K') → γLine(H, K') → mIntersect(p, m, 2) → LSegment(H, L) → qCircle(M, 2) → c_1Angle(N', M, N) → εCircle(Q, 2) → k_1Segment(R, S) → j_1Segment(F, H) → hAngle(S, Q, M) → ηIf(η > asin(1 / n), Rotate[S, -η, Q]) → S'Angle(S', Q, S) → θLine(Q, S') → l_1Intersect(h_1, l_1, 2) → TSegment(Q, T) → m_1Rotate(R, asin(n * sin(ζ)), Q) → R'Angle(R, Q, R') → ιIntersect(t, a_1, 2) → OSegment(N, O) → b_1Segment(H, M) → sSegment(M, Q) → e_1Line(Q, R') → f_1Intersect(k_1, f_1, 2) → PSegment(Q, P) → g_1Rotate(O, asin(n * sin(δ)), M) → O'Angle(O, M, O') → κLine(M, O') → n_1Intersect(c_1, n_1, 2) → USegment(M, U) → p_1Intersect(r, a) → WCircle(W, 1) → s_1OrthogonalLine(W, a) → t_1Intersect(s_1, t_1, 2) → ZIntersect(s_1, t_1, 1) → A_1Segment(Z, A_1) → a_2Angle(H, W, A_1) → λRotate(A_1, λ, W) → B_1Angle(A_1, W, B_1) → μLine(W, B_1) → b_2Intersect(b_2, e) → C_1Segment(H, W) → c_2Circle(C_1, 1) → d_2OrthogonalLine(C_1, e) → e_2Intersect(d_2, e_2) → D_1, F_1Segment(D_1, F_1) → f_2Angle(D_1, C_1, W) → νRotate(D_1, -ν, C_1) → G_1Angle(G_1, C_1, D_1) → ξLine(C_1, G_1) → g_2Intersect(g_2, c) → H_1LineBisector(C_1, H_1) → h_2Segment(H_1, C_1) → i_2Intersect(h_2, i_2) → I_1Segment(C_1, I_1) → j_2Segment(W, C_1) → k_2Intersect(d_1, d) → VSegment(M, V) → q_1Intersect(b_2, c) → K_1Circle(K_1, 1) → p_2OrthogonalLine(K_1, c) → m_2Intersect(p_2, m_2, 1) → L_1Intersect(p_2, m_2, 2) → M_1Segment(L_1, M_1) → n_2Angle(W, K_1, L_1) → οRotate(L_1, ο, K_1) → N_1Angle(L_1, K_1, N_1) → ρLine(K_1, N_1) → q_2Intersect(q_2, e) → O_1Segment(W, K_1) → r_2Segment(K_1, O_1) → s_2Circle(O_1, 1) → t_2OrthogonalLine(O_1, e) → a_3Intersect(t_2, a_3) → P_1, Q_1Segment(P_1, Q_1) → b_3Angle(P_1, O_1, K_1) → σRotate(Q_1, asin(n * sin(σ)), O_1) → R_1Angle(Q_1, O_1, R_1) → τIntersect(r, c) → S_1Circle(S_1, 1) → d_3OrthogonalLine(S_1, c) → e_3Intersect(d_3, e_3) → T_1, U_1Segment(U_1, T_1) → f_3Angle(H, S_1, T_1) → υRotate(U_1, -asin(n * sin(υ)), S_1) → V_1Angle(U_1, S_1, V_1) → ϕLine(O_1, R_1) → c_3Circle(O_1, 2) → g_3Intersect(g_3, c_3) → W_1, Z_1Segment(O_1, Z_1) → h_3Circle(S_1, 2) → k_3Line(S_1, V_1) → i_3Intersect(k_3, i_3, 2) → A_2Segment(S_1, A_2) → j_3Segment(H, S_1) → l_3Rotate(T_1, -υ, S_1) → B_2Angle(B_2, S_1, T_1) → χRotate(T_1, υ, S_1) → C_2Angle(T_1, S_1, C_2) → ψLine(S_1, C_2) → m_3Intersect(m_3, e) → D_2LineBisector(S_1, D_2) → n_3Segment(S_1, D_2) → p_3Intersect(n_3, p_3) → E_2Segment(S_1, E_2) → q_3Line(M, N') → r_3Intersect(r_3, c) → F_2Circle(F_2, 1) → s_3OrthogonalLine(F_2, c) → t_3Intersect(s_3, t_3) → G_2, H_2Segment(H_2, G_2) → a_4Angle(G_2, F_2, M) → ωRotate(H_2, asin(n * sin(ω)), F_2) → I_2Angle(I_2, F_2, H_2) → α_1Circle(F_2, 2) → c_4Line(F_2, I_2) → b_4Intersect(c_4, b_4, 2) → J_2Segment(F_2, J_2) → d_4Segment(M, F_2) → e_4If(ω > asin(1 / n), Rotate[G_2, -ω, F_2]) → K_2Angle(K_2, F_2, G_2) → β_1Line(F_2, K_2) → f_4Intersect(f_4, d) → L_2Circle(L_2, 1) → g_4OrthogonalLine(L_2, d) → h_4Intersect(g_4, h_4) → M_2, N_2Segment(N_2, M_2) → i_4Angle(F_2, L_2, N_2) → γ_1Rotate(N_2, γ_1, L_2) → O_2Angle(N_2, L_2, O_2) → δ_1Segment(F_2, L_2) → j_4Line(L_2, O_2) → k_4Intersect(k_4, a) → P_2Segment(L_2, P_2) → l_4Circle(P_2, 1) → p_4OrthogonalLine(P_2, a) → m_4Intersect(p_4, m_4) → Q_2, R_2Segment(R_2, Q_2) → n_4Angle(L_2, P_2, Q_2) → ε_1Rotate(R_2, -asin(n * sin(ε_1)), P_2) → S_2Angle(S_2, P_2, R_2) → ζ_1Circle(P_2, 2) → q_4Line(P_2, S_2) → r_4Intersect(q_4, r_4, 2) → T_2Segment(P_2, T_2) → s_4Intersect(k_4, b) → U_2Circle(U_2, 1) → t_4OrthogonalLine(U_2, b) → a_5Intersect(t_4, a_5) → V_2, W_2Segment(V_2, W_2) → b_5Angle(L_2, U_2, W_2) → η_1Rotate(W_2, η_1, U_2) → Z_2Angle(W_2, U_2, Z_2) → θ_1Line(U_2, Z_2) → c_5Intersect(c_5, a) → A_3Segment(U_2, A_3) → d_5LineBisector(U_2, A_3) → e_5Intersect(e_5, d_5) → B_3Segment(U_2, B_3) → f_5Segment(L_2, U_2) → g_5Circle(V, 1) → h_5OrthogonalLine(V, d) → r_1Intersect(h_5, r_1) → J_1, C_3Segment(J_1, C_3) → l_2Segment(M, V) → i_5Angle(C_3, V, M) → ι_1Rotate(J_1, asin(n * sin(ι_1)), V) → D_3Angle(D_3, V, J_1) → κ_1Circle(V, 2) → k_5Line(V, D_3) → j_5Intersect(k_5, j_5, 2) → E_3Segment(V, E_3) → l_5If((360° - asin(1 / n) > ι_1) ∧ (ι_1 > asin(1 / n)), Rotate[C_3, -ι_1, V]) → F_3Angle(F_3, V, C_3) → λ_1Line(V, F_3) → m_5Intersect(m_5, e) → G_3Circle(G_3, 1) → p_5OrthogonalLine(G_3, e) → n_5Intersect(p_5, n_5) → H_3, I_3Angle(V, G_3, H_3) → μ_1Segment(H_3, I_3) → q_5If(μ_1 > asin(1 / n), Rotate[H_3, μ_1, G_3]) → J_3Angle(H_3, G_3, J_3) → ν_1Rotate(I_3, -asin(n * sin(μ_1)), G_3) → K_3Angle(K_3, G_3, I_3) → ξ_1Circle(G_3, 2) → r_5Line(G_3, K_3) → s_5Segment(V, G_3) → t_5Intersect(r_5, s_5, 2) → L_3Segment(G_3, L_3) → a_6Line(G_3, J_3) → b_6Intersect(b_6, d) → M_3LineBisector(G_3, M_3) → c_6Intersect(b_6, c_6) → N_3Segment(G_3, N_3) → d_6Polygon(B, A, C, D, E) → poly1, e_6, f_6, g_6, h_6, i_6
AI Drawing Prompt Reference
Draw a geometric diagram of a diamond cross-section showing total internal reflection. Start with a polygonal outline of the diamond with multiple vertices and edges. From an interior point, emit a light ray that travels inside the diamond. At each intersection of the ray with an edge, draw the normal line to that edge and a unit circle centered at the intersection point to measure the angle of incidence. Using the refractive index, determine the critical angle. When the incidence angle exceeds the critical angle, the ray undergoes total internal reflection; show the reflected ray by rotating the incident ray about the intersection point. Trace the ray through multiple reflections, updating its direction after each bounce)Skip, and mark the intersection points with subsequent edges. Draw several reflected ray segments inside the diamond, and label the angles of incidence, reflection, and the critical angle at each reflection point. The overall figure illustrates how light is trapped inside the diamond through repeated total internal reflections, creating a brilliant sparkle.
The prompt above was compiled from the original drawing commands and is for reference only.