Energy Level Diagrams

Energy Level Diagrams
Loading the math board and drawing, please wait…
2017-03-19 09:41
This example demonstrates energy level diagrams, involving similar triangles and geometric construction. Using GeoGebra commands such as Line, Point, OrthogonalLine, etc., energy level diagrams can be constructed. Suitable for high school physics and mathematics education.

GeoGebra Commands & Parameters

  1. Line(A, xAxis) → f
  2. Point(f) → K
  3. OrthogonalLine(K, f) → f_2
  4. Point(yAxis) → C
  5. Line(C, xAxis) → h
  6. Intersect(h, f_2) → O_1
  7. Segment(C, O_1) → i_2
  8. If(levelnumber > 3, 1, 0) → testlevel4
  9. If(levelnumber > 5, 1, 0) → testlevel6
  10. If(levelnumber > 4, 1, 0) → testlevel5
  11. Point(yAxis) → B
  12. Point(yAxis) → D
  13. Point(yAxis) → E
  14. Segment(A, K) → g_2
  15. Point(g_2) → G
  16. OrthogonalLine(G, f) → l
  17. Point(l) → endA1
  18. Point(yAxis) → F
  19. Line(F, xAxis) → k
  20. Intersect(k, f_2) → S_2
  21. Segment(F, S_2) → l_2
  22. Line(E, xAxis) → j
  23. Intersect(j, f_2) → Q_1
  24. Segment(E, Q_1) → k_2
  25. Line(D, xAxis) → i
  26. Intersect(i, f_2) → P_1
  27. Segment(D, P_1) → j_2
  28. Line(B, xAxis) → g
  29. Intersect(g, f_2) → N_1
  30. Segment(B, N_1) → h_2
  31. Point(i_2) → S
  32. Point(h_2) → O
  33. OrthogonalLine(O, g) → b
  34. Point(b) → endB2
  35. Point(h_2) → N
  36. OrthogonalLine(N, g) → a
  37. Point(a) → endB1
  38. Point(i_2) → T
  39. OrthogonalLine(S, h) → e
  40. Point(e) → endC3
  41. Vector(O, endB2) → B2
  42. OrthogonalLine(T, h) → f_1
  43. Point(f_1) → endC2
  44. Vector(N, endB1) → B1
  45. Point(i_2) → R
  46. OrthogonalLine(R, h) → d
  47. Point(d) → endC1
  48. Vector(R, endC1) → C1
  49. Point(g_2) → J
  50. OrthogonalLine(J, f) → p
  51. Point(g_2) → I
  52. OrthogonalLine(I, f) → n
  53. Point(g_2) → H_3
  54. OrthogonalLine(H_3, f) → m
  55. Vector(G, endA1) → A1
  56. Point(m) → endA4
  57. Vector(H_3, endA4) → A4
  58. Point(n) → endA5
  59. Vector(I, endA5) → A5
  60. Point(p) → endA2
  61. Vector(J, endA2) → A2
  62. Point(g_2) → P
  63. OrthogonalLine(P, f) → q
  64. Point(q) → endA3
  65. Vector(P, endA3) → A3
  66. If(490 < w < 510, (-((w - 510) / 20)), If[380 < w < 491, 1, 0]) → BCoeff
  67. If(440 < w < 490, (w - 440) / 50, If[580 < w < 645, (-((w - 645) / 65)), If[489 < w < 581, 1, 0]]) → GCoeff
  68. If(380 < w < 440, (w - 440) / 60, If[510 < w < 580, (w - 510) / 70, If[579 < w < 780, 1, 0]]) → RCoeff
  69. Point(h_2) → M
  70. Point(h_2) → Q
  71. Point(h_2) → L
  72. OrthogonalLine(L, g) → s
  73. OrthogonalLine(M, g) → t
  74. OrthogonalLine(Q, g) → c
  75. Point(s) → endB3
  76. Point(t) → endB5
  77. Point(c) → endB4
  78. Vector(L, endB3) → B3
  79. Vector(M, endB5) → B5
  80. Vector(T, endC2) → C2
  81. Vector(S, endC3) → C3
  82. Vector(Q, endB4) → B4
  83. If(abs(y(endA2) - y(B)) < r, testlevel6, If[abs(y(endA2) - y(C)) < r, testlevel5, If[abs(y(endA2) - y(D)) < r, testlevel4, If[abs(y(endA2) - y(E)) < r, 1, If[abs(y(endA2) - y(F)) < r, 1, 0]]]]) → testA2
  84. If(abs(y(endA3) - y(B)) < r, testlevel6, If[abs(y(endA3) - y(C)) < r, testlevel5, If[abs(y(endA3) - y(D)) < r, testlevel4, If[abs(y(endA3) - y(E)) < r, 1, If[abs(y(endA3) - y(F)) < r, 1, 0]]]]) → testA3
  85. If(abs(y(endA4) - y(B)) < r, testlevel6, If[abs(y(endA4) - y(C)) < r, testlevel5, If[abs(y(endA4) - y(D)) < r, testlevel4, If[abs(y(endA4) - y(E)) < r, 1, If[abs(y(endA4) - y(F)) < r, 1, 0]]]]) → testA4
  86. If(abs(y(endA5) - y(B)) < r, testlevel6, If[abs(y(endA5) - y(C)) < r, testlevel5, If[abs(y(endA5) - y(D)) < r, testlevel4, If[abs(y(endA5) - y(E)) < r, 1, If[abs(y(endA5) - y(F)) < r, 1, 0]]]]) → testA5
  87. If(abs(y(endB2) - y(A)) < r, 1, If[abs(y(endB2) - y(C)) < r, testlevel5, If[abs(y(endB2) - y(D)) < r, testlevel4, If[abs(y(endB2) - y(E)) < r, 1, If[abs(y(endB2) - y(F)) < r, 1, 0]]]]) → testB2
  88. If(abs(y(endB1) - y(A)) < r, 1, If[abs(y(endB1) - y(C)) < r, testlevel5, If[abs(y(endB1) - y(D)) < r, testlevel4, If[abs(y(endB1) - y(E)) < r, 1, If[abs(y(endB1) - y(F)) < r, 1, 0]]]]) → testB1
  89. If(abs(y(endB3) - y(A)) < r, 1, If[abs(y(endB3) - y(C)) < r, testlevel5, If[abs(y(endB3) - y(D)) < r, testlevel4, If[abs(y(endB3) - y(E)) < r, 1, If[abs(y(endB3) - y(F)) < r, 1, 0]]]]) → testB3
  90. If(abs(y(endB5) - y(A)) < r, 1, If[abs(y(endB5) - y(C)) < r, testlevel5, If[abs(y(endB5) - y(D)) < r, testlevel4, If[abs(y(endB5) - y(E)) < r, 1, If[abs(y(endB5) - y(F)) < r, 1, 0]]]]) → testB5
  91. If(abs(y(endB4) - y(A)) < r, 1, If[abs(y(endB4) - y(C)) < r, testlevel5, If[abs(y(endB4) - y(D)) < r, testlevel4, If[abs(y(endB4) - y(E)) < r, 1, If[abs(y(endB4) - y(F)) < r, 1, 0]]]]) → testB4
  92. Point(i_2) → U
  93. Point(i_2) → V
  94. Point(j_2) → W
  95. Point(j_2) → Z
  96. Point(j_2) → A_1
  97. Point(j_2) → B_1
  98. Point(k_2) → E_1
  99. Point(k_2) → F_1
  100. Point(k_2) → G_1
  101. Point(k_2) → H_1
  102. Point(l_2) → I_1
  103. Point(l_2) → K_1
  104. Point(l_2) → L_1
  105. Point(l_2) → M_1
  106. OrthogonalLine(U, h) → g_1
  107. OrthogonalLine(V, h) → h_1
  108. Point(j_2) → C_1
  109. OrthogonalLine(C_1, i) → i_1
  110. OrthogonalLine(B_1, i) → j_1
  111. OrthogonalLine(A_1, i) → k_1
  112. OrthogonalLine(Z, i) → l_1
  113. OrthogonalLine(W, i) → m_1
  114. Point(k_2) → D_1
  115. OrthogonalLine(D_1, j) → n_1
  116. OrthogonalLine(E_1, j) → p_1
  117. OrthogonalLine(F_1, j) → q_1
  118. OrthogonalLine(G_1, j) → r_1
  119. OrthogonalLine(H_1, j) → s_1
  120. OrthogonalLine(M_1, k) → t_1
  121. OrthogonalLine(L_1, k) → a_1
  122. OrthogonalLine(K_1, k) → b_1
  123. Point(l_2) → J_1
  124. OrthogonalLine(J_1, k) → c_1
  125. OrthogonalLine(I_1, k) → d_1
  126. Point(h_1) → endC5
  127. Point(g_1) → endC4
  128. Vector(U, endC4) → C4
  129. Vector(V, endC5) → C5
  130. Point(m_1) → endD1
  131. Point(l_1) → endD3
  132. Point(k_1) → endD2
  133. Point(j_1) → endD4
  134. Point(i_1) → endD5
  135. Vector(W, endD1) → D1
  136. Vector(Z, endD3) → D3
  137. Vector(A_1, endD2) → D2
  138. Vector(B_1, endD4) → D4
  139. Vector(C_1, endD5) → D5
  140. Point(n_1) → endE2
  141. Point(p_1) → endE3
  142. Point(q_1) → endE4
  143. Point(r_1) → endE5
  144. Point(s_1) → endE1
  145. Point(t_1) → endF4
  146. Point(a_1) → endF2
  147. Point(b_1) → endF3
  148. Point(c_1) → endF1
  149. Point(d_1) → endF5
  150. Vector(J_1, endF1) → F1
  151. Vector(K_1, endF3) → F3
  152. Vector(L_1, endF2) → F2
  153. Vector(M_1, endF4) → F4
  154. Vector(I_1, endF5) → F5
  155. Vector(D_1, endE2) → E2
  156. Vector(E_1, endE3) → E3
  157. Vector(F_1, endE4) → E4
  158. Vector(G_1, endE5) → E5
  159. Vector(H_1, endE1) → E1
  160. If(abs(y(endC5) - y(A)) < r, 1, If[abs(y(endC5) - y(B)) < r, testlevel6, If[abs(y(endC5) - y(D)) < r, testlevel4, If[abs(y(endC5) - y(E)) < r, 1, If[abs(y(endC5) - y(F)) < r, 1, 0]]]]) → testC5
  161. If(abs(y(endC4) - y(A)) < r, 1, If[abs(y(endC4) - y(B)) < r, testlevel6, If[abs(y(endC4) - y(D)) < r, testlevel4, If[abs(y(endC4) - y(E)) < r, 1, If[abs(y(endC4) - y(F)) < r, 1, 0]]]]) → testC4
  162. If(abs(y(endC3) - y(A)) < r, 1, If[abs(y(endC3) - y(B)) < r, testlevel6, If[abs(y(endC3) - y(D)) < r, testlevel4, If[abs(y(endC3) - y(E)) < r, 1, If[abs(y(endC3) - y(F)) < r, 1, 0]]]]) → testC3
  163. If(abs(y(endC2) - y(A)) < r, 1, If[abs(y(endC2) - y(B)) < r, testlevel6, If[abs(y(endC2) - y(D)) < r, testlevel4, If[abs(y(endC2) - y(E)) < r, 1, If[abs(y(endC2) - y(F)) < r, 1, 0]]]]) → testC2
  164. If(abs(y(endC1) - y(A)) < r, 1, If[abs(y(endC1) - y(B)) < r, testlevel6, If[abs(y(endC1) - y(D)) < r, testlevel4, If[abs(y(endC1) - y(E)) < r, 1, If[abs(y(endC1) - y(F)) < r, 1, 0]]]]) → testC1
  165. If(abs(y(endD1) - y(A)) < r, 1, If[abs(y(endD1) - y(B)) < r, testlevel6, If[abs(y(endD1) - y(C)) < r, testlevel5, If[abs(y(endD1) - y(E)) < r, 1, If[abs(y(endD1) - y(F)) < r, 1, 0]]]]) → testD1
  166. If(abs(y(endD2) - y(A)) < r, 1, If[abs(y(endD2) - y(B)) < r, testlevel6, If[abs(y(endD2) - y(C)) < r, testlevel5, If[abs(y(endD2) - y(E)) < r, 1, If[abs(y(endD2) - y(F)) < r, 1, 0]]]]) → testD2
  167. If(abs(y(endD3) - y(A)) < r, 1, If[abs(y(endD3) - y(B)) < r, testlevel6, If[abs(y(endD3) - y(C)) < r, testlevel5, If[abs(y(endD3) - y(E)) < r, 1, If[abs(y(endD3) - y(F)) < r, 1, 0]]]]) → testD3
  168. If(abs(y(endD4) - y(A)) < r, 1, If[abs(y(endD4) - y(B)) < r, testlevel6, If[abs(y(endD4) - y(C)) < r, testlevel5, If[abs(y(endD4) - y(E)) < r, 1, If[abs(y(endD4) - y(F)) < r, 1, 0]]]]) → testD4
  169. If(abs(y(endD5) - y(A)) < r, 1, If[abs(y(endD5) - y(B)) < r, testlevel6, If[abs(y(endD5) - y(C)) < r, testlevel5, If[abs(y(endD5) - y(E)) < r, 1, If[abs(y(endD5) - y(F)) < r, 1, 0]]]]) → testD5
  170. If(abs(y(endE5) - y(A)) < r, 1, If[abs(y(endE5) - y(B)) < r, testlevel6, If[abs(y(endE5) - y(C)) < r, testlevel5, If[abs(y(endE5) - y(D)) < r, testlevel4, If[abs(y(endE5) - y(F)) < r, 1, 0]]]]) → testE5
  171. If(abs(y(endE1) - y(A)) < r, 1, If[abs(y(endE1) - y(B)) < r, testlevel6, If[abs(y(endE1) - y(C)) < r, testlevel5, If[abs(y(endE1) - y(D)) < r, testlevel4, If[abs(y(endE1) - y(F)) < r, 1, 0]]]]) → testE1
  172. If(abs(y(endE2) - y(A)) < r, 1, If[abs(y(endE2) - y(B)) < r, testlevel6, If[abs(y(endE2) - y(C)) < r, testlevel5, If[abs(y(endE2) - y(D)) < r, testlevel4, If[abs(y(endE2) - y(F)) < r, 1, 0]]]]) → testE2
  173. If(abs(y(endE3) - y(A)) < r, 1, If[abs(y(endE3) - y(B)) < r, testlevel6, If[abs(y(endE3) - y(C)) < r, testlevel5, If[abs(y(endE3) - y(D)) < r, testlevel4, If[abs(y(endE3) - y(F)) < r, 1, 0]]]]) → testE3
  174. If(abs(y(endE4) - y(A)) < r, 1, If[abs(y(endE4) - y(B)) < r, testlevel6, If[abs(y(endE4) - y(C)) < r, testlevel5, If[abs(y(endE4) - y(D)) < r, testlevel4, If[abs(y(endE4) - y(F)) < r, 1, 0]]]]) → testE4
  175. If(abs(y(endF5) - y(A)) < r, 1, If[abs(y(endF5) - y(B)) < r, testlevel6, If[abs(y(endF5) - y(C)) < r, testlevel5, If[abs(y(endF5) - y(D)) < r, testlevel4, If[abs(y(endF5) - y(E)) < r, 1, 0]]]]) → testF5
  176. If(abs(y(endF1) - y(A)) < r, 1, If[abs(y(endF1) - y(B)) < r, testlevel6, If[abs(y(endF1) - y(C)) < r, testlevel5, If[abs(y(endF1) - y(D)) < r, testlevel4, If[abs(y(endF1) - y(E)) < r, 1, 0]]]]) → testF1
  177. If(abs(y(endF2) - y(A)) < r, 1, If[abs(y(endF2) - y(B)) < r, testlevel6, If[abs(y(endF2) - y(C)) < r, testlevel5, If[abs(y(endF2) - y(D)) < r, testlevel4, If[abs(y(endF2) - y(E)) < r, 1, 0]]]]) → testF2
  178. If(abs(y(endF3) - y(A)) < r, 1, If[abs(y(endF3) - y(B)) < r, testlevel6, If[abs(y(endF3) - y(C)) < r, testlevel5, If[abs(y(endF3) - y(D)) < r, testlevel4, If[abs(y(endF3) - y(E)) < r, 1, 0]]]]) → testF3
  179. If(abs(y(endF4) - y(A)) < r, 1, If[abs(y(endF4) - y(B)) < r, testlevel6, If[abs(y(endF4) - y(C)) < r, testlevel5, If[abs(y(endF4) - y(D)) < r, testlevel4, If[abs(y(endF4) - y(E)) < r, 1, 0]]]]) → testF4
  180. If(o > 0, 1, 0) → u
  181. If(abs(y(endA1) - y(B)) < r, testlevel6, If[abs(y(endA1) - y(C)) < r, testlevel5, If[abs(y(endA1) - y(D)) < r, testlevel4, If[abs(y(endA1) - y(E)) < r, 1, If[abs(y(endA1) - y(F)) < r, 1, 0]]]]) → testA1
  182. Point(g_2) → R_1
  183. Point(g_2) → S_1
  184. Point(g_2) → T_1
  185. Point(g_2) → U_1
  186. Point(g_2) → V_1
  187. Point(h_2) → W_1
  188. Point(h_2) → Z_1
  189. Point(h_2) → A_2
  190. Point(h_2) → B_2
  191. Point(i_2) → C_2
  192. Point(i_2) → D_2
  193. Point(i_2) → E_2
  194. Point(j_2) → F_2
  195. Point(j_2) → G_2
  196. Point(k_2) → H_2
  197. OrthogonalLine(R_1, g_2) → m_2
  198. OrthogonalLine(S_1, g_2) → n_2
  199. OrthogonalLine(T_1, g_2) → p_2
  200. OrthogonalLine(U_1, g_2) → q_2
  201. OrthogonalLine(V_1, g_2) → r_2
  202. OrthogonalLine(W_1, h_2) → s_2
  203. OrthogonalLine(Z_1, h_2) → t_2
  204. OrthogonalLine(A_2, h_2) → a_2
  205. OrthogonalLine(B_2, h_2) → b_2
  206. OrthogonalLine(C_2, i_2) → c_2
  207. OrthogonalLine(D_2, i_2) → d_2
  208. OrthogonalLine(E_2, i_2) → e_2
  209. OrthogonalLine(F_2, j_2) → f_3
  210. OrthogonalLine(G_2, j_2) → g_3
  211. OrthogonalLine(H_2, k_2) → h_3
  212. Intersect(m_2, h_2) → endG1
  213. Intersect(n_2, i_2) → endG2
  214. Intersect(p_2, j_2) → endG3
  215. Intersect(q_2, k_2) → endG4
  216. Intersect(r_2, l_2) → endG5
  217. Intersect(s_2, i_2) → endH1
  218. Intersect(t_2, j_2) → endH2
  219. Intersect(a_2, k_2) → endH3
  220. Intersect(b_2, l_2) → endH4
  221. Intersect(c_2, j_2) → endI1
  222. Intersect(d_2, k_2) → endI2
  223. Intersect(e_2, l_2) → endI3
  224. Intersect(f_3, k_2) → endJ1
  225. Intersect(g_3, l_2) → endJ2
  226. Intersect(h_3, l_2) → endK1
  227. Vector(R_1, endG1) → G1
  228. Vector(S_1, endG2) → G2
  229. Vector(T_1, endG3) → G3
  230. Vector(U_1, endG4) → G4
  231. Vector(V_1, endG5) → G5
  232. Vector(W_1, endH1) → H1
  233. Vector(Z_1, endH2) → H2
  234. Vector(A_2, endH3) → H3
  235. Vector(B_2, endH4) → H4
  236. Vector(C_2, endI1) → I1
  237. Vector(D_2, endI2) → I2
  238. Vector(E_2, endI3) → I3
  239. Vector(F_2, endJ1) → J1
  240. Vector(G_2, endJ2) → J2
  241. Vector(H_2, endK1) → K1
  242. Length(G1) → EG1
  243. Length(G2) → EG2
  244. Length(G3) → EG3
  245. Length(G5) → EG5
  246. Length(H1) → EH1
  247. Length(H2) → EH2
  248. Length(H3) → EH3
  249. Length(H4) → EH4
  250. Length(I1) → EI1
  251. Length(I2) → EI2
  252. Length(I3) → EI3
  253. Length(J1) → EJ1
  254. Length(J2) → EJ2
  255. Length(K1) → EK1
  256. Length(G4) → EG4