Total Internal Reflection in Diamond Geometry

Total Internal Reflection in Diamond Geometry
Loading the math board and drawing, please wait…
2012-08-19 20:43
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

  1. Segment(A, C) → a
  2. Point(a) → F
  3. Segment(G, F) → f
  4. Line(F, f) → g
  5. Ray(I, E_1) → j
  6. Point(j) → E
  7. Segment(D, E) → e
  8. Segment(B, E) → d
  9. Intersect(g, d) → H
  10. Circle(H, 1) → k
  11. OrthogonalLine(H, d) → i
  12. Intersect(k, i, 2) → J
  13. Angle(J, H, F) → α
  14. If((180° > α) ∧ (α > asin(1 / n)), Rotate[J, -α, H]) → J'
  15. Line(H, J') → r
  16. Intersect(r, e) → M
  17. OrthogonalLine(M, e) → a_1
  18. Circle(M, 1) → t
  19. Intersect(t, a_1, 1) → N
  20. Angle(N, M, H) → δ
  21. If((360° - asin(1 / n) > δ) ∧ (δ > asin(1 / n)), Rotate[N, -δ, M]) → N'
  22. Line(M, N') → d_1
  23. Intersect(d_1, a) → Q
  24. OrthogonalLine(Q, a) → i_1
  25. Circle(Q, 1) → h_1
  26. Intersect(h_1, i_1, 1) → S
  27. Angle(S, Q, M) → ζ
  28. Intersect(h_1, i_1, 2) → R
  29. Segment(A, B) → b
  30. Segment(C, D) → c
  31. Circle(H, 2) → p
  32. Intersect(k, i, 1) → K
  33. Segment(J, K) → l
  34. Angle(J', H, J) → β
  35. Rotate(K, asin(n * sin(α)), H) → K'
  36. Angle(K, H, K') → γ
  37. Line(H, K') → m
  38. Intersect(p, m, 2) → L
  39. Segment(H, L) → q
  40. Circle(M, 2) → c_1
  41. Angle(N', M, N) → ε
  42. Circle(Q, 2) → k_1
  43. Segment(R, S) → j_1
  44. Segment(F, H) → h
  45. Angle(S, Q, M) → η
  46. If(η > asin(1 / n), Rotate[S, -η, Q]) → S'
  47. Angle(S', Q, S) → θ
  48. Line(Q, S') → l_1
  49. Intersect(h_1, l_1, 2) → T
  50. Segment(Q, T) → m_1
  51. Rotate(R, asin(n * sin(ζ)), Q) → R'
  52. Angle(R, Q, R') → ι
  53. Intersect(t, a_1, 2) → O
  54. Segment(N, O) → b_1
  55. Segment(H, M) → s
  56. Segment(M, Q) → e_1
  57. Line(Q, R') → f_1
  58. Intersect(k_1, f_1, 2) → P
  59. Segment(Q, P) → g_1
  60. Rotate(O, asin(n * sin(δ)), M) → O'
  61. Angle(O, M, O') → κ
  62. Line(M, O') → n_1
  63. Intersect(c_1, n_1, 2) → U
  64. Segment(M, U) → p_1
  65. Intersect(r, a) → W
  66. Circle(W, 1) → s_1
  67. OrthogonalLine(W, a) → t_1
  68. Intersect(s_1, t_1, 2) → Z
  69. Intersect(s_1, t_1, 1) → A_1
  70. Segment(Z, A_1) → a_2
  71. Angle(H, W, A_1) → λ
  72. Rotate(A_1, λ, W) → B_1
  73. Angle(A_1, W, B_1) → μ
  74. Line(W, B_1) → b_2
  75. Intersect(b_2, e) → C_1
  76. Segment(H, W) → c_2
  77. Circle(C_1, 1) → d_2
  78. OrthogonalLine(C_1, e) → e_2
  79. Intersect(d_2, e_2) → D_1, F_1
  80. Segment(D_1, F_1) → f_2
  81. Angle(D_1, C_1, W) → ν
  82. Rotate(D_1, -ν, C_1) → G_1
  83. Angle(G_1, C_1, D_1) → ξ
  84. Line(C_1, G_1) → g_2
  85. Intersect(g_2, c) → H_1
  86. LineBisector(C_1, H_1) → h_2
  87. Segment(H_1, C_1) → i_2
  88. Intersect(h_2, i_2) → I_1
  89. Segment(C_1, I_1) → j_2
  90. Segment(W, C_1) → k_2
  91. Intersect(d_1, d) → V
  92. Segment(M, V) → q_1
  93. Intersect(b_2, c) → K_1
  94. Circle(K_1, 1) → p_2
  95. OrthogonalLine(K_1, c) → m_2
  96. Intersect(p_2, m_2, 1) → L_1
  97. Intersect(p_2, m_2, 2) → M_1
  98. Segment(L_1, M_1) → n_2
  99. Angle(W, K_1, L_1) → ο
  100. Rotate(L_1, ο, K_1) → N_1
  101. Angle(L_1, K_1, N_1) → ρ
  102. Line(K_1, N_1) → q_2
  103. Intersect(q_2, e) → O_1
  104. Segment(W, K_1) → r_2
  105. Segment(K_1, O_1) → s_2
  106. Circle(O_1, 1) → t_2
  107. OrthogonalLine(O_1, e) → a_3
  108. Intersect(t_2, a_3) → P_1, Q_1
  109. Segment(P_1, Q_1) → b_3
  110. Angle(P_1, O_1, K_1) → σ
  111. Rotate(Q_1, asin(n * sin(σ)), O_1) → R_1
  112. Angle(Q_1, O_1, R_1) → τ
  113. Intersect(r, c) → S_1
  114. Circle(S_1, 1) → d_3
  115. OrthogonalLine(S_1, c) → e_3
  116. Intersect(d_3, e_3) → T_1, U_1
  117. Segment(U_1, T_1) → f_3
  118. Angle(H, S_1, T_1) → υ
  119. Rotate(U_1, -asin(n * sin(υ)), S_1) → V_1
  120. Angle(U_1, S_1, V_1) → ϕ
  121. Line(O_1, R_1) → c_3
  122. Circle(O_1, 2) → g_3
  123. Intersect(g_3, c_3) → W_1, Z_1
  124. Segment(O_1, Z_1) → h_3
  125. Circle(S_1, 2) → k_3
  126. Line(S_1, V_1) → i_3
  127. Intersect(k_3, i_3, 2) → A_2
  128. Segment(S_1, A_2) → j_3
  129. Segment(H, S_1) → l_3
  130. Rotate(T_1, -υ, S_1) → B_2
  131. Angle(B_2, S_1, T_1) → χ
  132. Rotate(T_1, υ, S_1) → C_2
  133. Angle(T_1, S_1, C_2) → ψ
  134. Line(S_1, C_2) → m_3
  135. Intersect(m_3, e) → D_2
  136. LineBisector(S_1, D_2) → n_3
  137. Segment(S_1, D_2) → p_3
  138. Intersect(n_3, p_3) → E_2
  139. Segment(S_1, E_2) → q_3
  140. Line(M, N') → r_3
  141. Intersect(r_3, c) → F_2
  142. Circle(F_2, 1) → s_3
  143. OrthogonalLine(F_2, c) → t_3
  144. Intersect(s_3, t_3) → G_2, H_2
  145. Segment(H_2, G_2) → a_4
  146. Angle(G_2, F_2, M) → ω
  147. Rotate(H_2, asin(n * sin(ω)), F_2) → I_2
  148. Angle(I_2, F_2, H_2) → α_1
  149. Circle(F_2, 2) → c_4
  150. Line(F_2, I_2) → b_4
  151. Intersect(c_4, b_4, 2) → J_2
  152. Segment(F_2, J_2) → d_4
  153. Segment(M, F_2) → e_4
  154. If(ω > asin(1 / n), Rotate[G_2, -ω, F_2]) → K_2
  155. Angle(K_2, F_2, G_2) → β_1
  156. Line(F_2, K_2) → f_4
  157. Intersect(f_4, d) → L_2
  158. Circle(L_2, 1) → g_4
  159. OrthogonalLine(L_2, d) → h_4
  160. Intersect(g_4, h_4) → M_2, N_2
  161. Segment(N_2, M_2) → i_4
  162. Angle(F_2, L_2, N_2) → γ_1
  163. Rotate(N_2, γ_1, L_2) → O_2
  164. Angle(N_2, L_2, O_2) → δ_1
  165. Segment(F_2, L_2) → j_4
  166. Line(L_2, O_2) → k_4
  167. Intersect(k_4, a) → P_2
  168. Segment(L_2, P_2) → l_4
  169. Circle(P_2, 1) → p_4
  170. OrthogonalLine(P_2, a) → m_4
  171. Intersect(p_4, m_4) → Q_2, R_2
  172. Segment(R_2, Q_2) → n_4
  173. Angle(L_2, P_2, Q_2) → ε_1
  174. Rotate(R_2, -asin(n * sin(ε_1)), P_2) → S_2
  175. Angle(S_2, P_2, R_2) → ζ_1
  176. Circle(P_2, 2) → q_4
  177. Line(P_2, S_2) → r_4
  178. Intersect(q_4, r_4, 2) → T_2
  179. Segment(P_2, T_2) → s_4
  180. Intersect(k_4, b) → U_2
  181. Circle(U_2, 1) → t_4
  182. OrthogonalLine(U_2, b) → a_5
  183. Intersect(t_4, a_5) → V_2, W_2
  184. Segment(V_2, W_2) → b_5
  185. Angle(L_2, U_2, W_2) → η_1
  186. Rotate(W_2, η_1, U_2) → Z_2
  187. Angle(W_2, U_2, Z_2) → θ_1
  188. Line(U_2, Z_2) → c_5
  189. Intersect(c_5, a) → A_3
  190. Segment(U_2, A_3) → d_5
  191. LineBisector(U_2, A_3) → e_5
  192. Intersect(e_5, d_5) → B_3
  193. Segment(U_2, B_3) → f_5
  194. Segment(L_2, U_2) → g_5
  195. Circle(V, 1) → h_5
  196. OrthogonalLine(V, d) → r_1
  197. Intersect(h_5, r_1) → J_1, C_3
  198. Segment(J_1, C_3) → l_2
  199. Segment(M, V) → i_5
  200. Angle(C_3, V, M) → ι_1
  201. Rotate(J_1, asin(n * sin(ι_1)), V) → D_3
  202. Angle(D_3, V, J_1) → κ_1
  203. Circle(V, 2) → k_5
  204. Line(V, D_3) → j_5
  205. Intersect(k_5, j_5, 2) → E_3
  206. Segment(V, E_3) → l_5
  207. If((360° - asin(1 / n) > ι_1) ∧ (ι_1 > asin(1 / n)), Rotate[C_3, -ι_1, V]) → F_3
  208. Angle(F_3, V, C_3) → λ_1
  209. Line(V, F_3) → m_5
  210. Intersect(m_5, e) → G_3
  211. Circle(G_3, 1) → p_5
  212. OrthogonalLine(G_3, e) → n_5
  213. Intersect(p_5, n_5) → H_3, I_3
  214. Angle(V, G_3, H_3) → μ_1
  215. Segment(H_3, I_3) → q_5
  216. If(μ_1 > asin(1 / n), Rotate[H_3, μ_1, G_3]) → J_3
  217. Angle(H_3, G_3, J_3) → ν_1
  218. Rotate(I_3, -asin(n * sin(μ_1)), G_3) → K_3
  219. Angle(K_3, G_3, I_3) → ξ_1
  220. Circle(G_3, 2) → r_5
  221. Line(G_3, K_3) → s_5
  222. Segment(V, G_3) → t_5
  223. Intersect(r_5, s_5, 2) → L_3
  224. Segment(G_3, L_3) → a_6
  225. Line(G_3, J_3) → b_6
  226. Intersect(b_6, d) → M_3
  227. LineBisector(G_3, M_3) → c_6
  228. Intersect(b_6, c_6) → N_3
  229. Segment(G_3, N_3) → d_6
  230. Polygon(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.