Energy Level Diagrams
Loading the math board and drawing, please wait…
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
Line(A, xAxis) → fPoint(f) → KOrthogonalLine(K, f) → f_2Point(yAxis) → CLine(C, xAxis) → hIntersect(h, f_2) → O_1Segment(C, O_1) → i_2If(levelnumber > 3, 1, 0) → testlevel4If(levelnumber > 5, 1, 0) → testlevel6If(levelnumber > 4, 1, 0) → testlevel5Point(yAxis) → BPoint(yAxis) → DPoint(yAxis) → ESegment(A, K) → g_2Point(g_2) → GOrthogonalLine(G, f) → lPoint(l) → endA1Point(yAxis) → FLine(F, xAxis) → kIntersect(k, f_2) → S_2Segment(F, S_2) → l_2Line(E, xAxis) → jIntersect(j, f_2) → Q_1Segment(E, Q_1) → k_2Line(D, xAxis) → iIntersect(i, f_2) → P_1Segment(D, P_1) → j_2Line(B, xAxis) → gIntersect(g, f_2) → N_1Segment(B, N_1) → h_2Point(i_2) → SPoint(h_2) → OOrthogonalLine(O, g) → bPoint(b) → endB2Point(h_2) → NOrthogonalLine(N, g) → aPoint(a) → endB1Point(i_2) → TOrthogonalLine(S, h) → ePoint(e) → endC3Vector(O, endB2) → B2OrthogonalLine(T, h) → f_1Point(f_1) → endC2Vector(N, endB1) → B1Point(i_2) → ROrthogonalLine(R, h) → dPoint(d) → endC1Vector(R, endC1) → C1Point(g_2) → JOrthogonalLine(J, f) → pPoint(g_2) → IOrthogonalLine(I, f) → nPoint(g_2) → H_3OrthogonalLine(H_3, f) → mVector(G, endA1) → A1Point(m) → endA4Vector(H_3, endA4) → A4Point(n) → endA5Vector(I, endA5) → A5Point(p) → endA2Vector(J, endA2) → A2Point(g_2) → POrthogonalLine(P, f) → qPoint(q) → endA3Vector(P, endA3) → A3If(490 < w < 510, (-((w - 510) / 20)), If[380 < w < 491, 1, 0]) → BCoeffIf(440 < w < 490, (w - 440) / 50, If[580 < w < 645, (-((w - 645) / 65)), If[489 < w < 581, 1, 0]]) → GCoeffIf(380 < w < 440, (w - 440) / 60, If[510 < w < 580, (w - 510) / 70, If[579 < w < 780, 1, 0]]) → RCoeffPoint(h_2) → MPoint(h_2) → QPoint(h_2) → LOrthogonalLine(L, g) → sOrthogonalLine(M, g) → tOrthogonalLine(Q, g) → cPoint(s) → endB3Point(t) → endB5Point(c) → endB4Vector(L, endB3) → B3Vector(M, endB5) → B5Vector(T, endC2) → C2Vector(S, endC3) → C3Vector(Q, endB4) → B4If(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]]]]) → testA2If(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]]]]) → testA3If(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]]]]) → testA4If(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]]]]) → testA5If(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]]]]) → testB2If(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]]]]) → testB1If(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]]]]) → testB3If(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]]]]) → testB5If(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]]]]) → testB4Point(i_2) → UPoint(i_2) → VPoint(j_2) → WPoint(j_2) → ZPoint(j_2) → A_1Point(j_2) → B_1Point(k_2) → E_1Point(k_2) → F_1Point(k_2) → G_1Point(k_2) → H_1Point(l_2) → I_1Point(l_2) → K_1Point(l_2) → L_1Point(l_2) → M_1OrthogonalLine(U, h) → g_1OrthogonalLine(V, h) → h_1Point(j_2) → C_1OrthogonalLine(C_1, i) → i_1OrthogonalLine(B_1, i) → j_1OrthogonalLine(A_1, i) → k_1OrthogonalLine(Z, i) → l_1OrthogonalLine(W, i) → m_1Point(k_2) → D_1OrthogonalLine(D_1, j) → n_1OrthogonalLine(E_1, j) → p_1OrthogonalLine(F_1, j) → q_1OrthogonalLine(G_1, j) → r_1OrthogonalLine(H_1, j) → s_1OrthogonalLine(M_1, k) → t_1OrthogonalLine(L_1, k) → a_1OrthogonalLine(K_1, k) → b_1Point(l_2) → J_1OrthogonalLine(J_1, k) → c_1OrthogonalLine(I_1, k) → d_1Point(h_1) → endC5Point(g_1) → endC4Vector(U, endC4) → C4Vector(V, endC5) → C5Point(m_1) → endD1Point(l_1) → endD3Point(k_1) → endD2Point(j_1) → endD4Point(i_1) → endD5Vector(W, endD1) → D1Vector(Z, endD3) → D3Vector(A_1, endD2) → D2Vector(B_1, endD4) → D4Vector(C_1, endD5) → D5Point(n_1) → endE2Point(p_1) → endE3Point(q_1) → endE4Point(r_1) → endE5Point(s_1) → endE1Point(t_1) → endF4Point(a_1) → endF2Point(b_1) → endF3Point(c_1) → endF1Point(d_1) → endF5Vector(J_1, endF1) → F1Vector(K_1, endF3) → F3Vector(L_1, endF2) → F2Vector(M_1, endF4) → F4Vector(I_1, endF5) → F5Vector(D_1, endE2) → E2Vector(E_1, endE3) → E3Vector(F_1, endE4) → E4Vector(G_1, endE5) → E5Vector(H_1, endE1) → E1If(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]]]]) → testC5If(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]]]]) → testC4If(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]]]]) → testC3If(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]]]]) → testC2If(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]]]]) → testC1If(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]]]]) → testD1If(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]]]]) → testD2If(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]]]]) → testD3If(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]]]]) → testD4If(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]]]]) → testD5If(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]]]]) → testE5If(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]]]]) → testE1If(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]]]]) → testE2If(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]]]]) → testE3If(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]]]]) → testE4If(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]]]]) → testF5If(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]]]]) → testF1If(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]]]]) → testF2If(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]]]]) → testF3If(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]]]]) → testF4If(o > 0, 1, 0) → uIf(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]]]]) → testA1Point(g_2) → R_1Point(g_2) → S_1Point(g_2) → T_1Point(g_2) → U_1Point(g_2) → V_1Point(h_2) → W_1Point(h_2) → Z_1Point(h_2) → A_2Point(h_2) → B_2Point(i_2) → C_2Point(i_2) → D_2Point(i_2) → E_2Point(j_2) → F_2Point(j_2) → G_2Point(k_2) → H_2OrthogonalLine(R_1, g_2) → m_2OrthogonalLine(S_1, g_2) → n_2OrthogonalLine(T_1, g_2) → p_2OrthogonalLine(U_1, g_2) → q_2OrthogonalLine(V_1, g_2) → r_2OrthogonalLine(W_1, h_2) → s_2OrthogonalLine(Z_1, h_2) → t_2OrthogonalLine(A_2, h_2) → a_2OrthogonalLine(B_2, h_2) → b_2OrthogonalLine(C_2, i_2) → c_2OrthogonalLine(D_2, i_2) → d_2OrthogonalLine(E_2, i_2) → e_2OrthogonalLine(F_2, j_2) → f_3OrthogonalLine(G_2, j_2) → g_3OrthogonalLine(H_2, k_2) → h_3Intersect(m_2, h_2) → endG1Intersect(n_2, i_2) → endG2Intersect(p_2, j_2) → endG3Intersect(q_2, k_2) → endG4Intersect(r_2, l_2) → endG5Intersect(s_2, i_2) → endH1Intersect(t_2, j_2) → endH2Intersect(a_2, k_2) → endH3Intersect(b_2, l_2) → endH4Intersect(c_2, j_2) → endI1Intersect(d_2, k_2) → endI2Intersect(e_2, l_2) → endI3Intersect(f_3, k_2) → endJ1Intersect(g_3, l_2) → endJ2Intersect(h_3, l_2) → endK1Vector(R_1, endG1) → G1Vector(S_1, endG2) → G2Vector(T_1, endG3) → G3Vector(U_1, endG4) → G4Vector(V_1, endG5) → G5Vector(W_1, endH1) → H1Vector(Z_1, endH2) → H2Vector(A_2, endH3) → H3Vector(B_2, endH4) → H4Vector(C_2, endI1) → I1Vector(D_2, endI2) → I2Vector(E_2, endI3) → I3Vector(F_2, endJ1) → J1Vector(G_2, endJ2) → J2Vector(H_2, endK1) → K1Length(G1) → EG1Length(G2) → EG2Length(G3) → EG3Length(G5) → EG5Length(H1) → EH1Length(H2) → EH2Length(H3) → EH3Length(H4) → EH4Length(I1) → EI1Length(I2) → EI2Length(I3) → EI3Length(J1) → EJ1Length(J2) → EJ2Length(K1) → EK1Length(G4) → EG4