光子吸收/电离与能级图交互演示

光子吸收/电离与能级图交互演示
几何画板及绘图内容加载中,请稍等……
2016-10-29 05:48
该范例通过GeoGebra动态模拟光子吸收、电离过程以及原子能级跃迁的图形化表示。它直观展示了当光子能量与能级差匹配时电子如何跃迁,以及超过电离能时电子如何脱离原子。核心数学概念包括能量守恒、能级离散性、光子能量与频率的关系(E=hν),以及通过几何图形(如线段、圆、多边形)和坐标点来可视化抽象的物理量。作图要点包括使用Line、Point、Circle、Segment、Polygon等基础几何命令构建能级轴和电子位置,利用If、Intersect、OrthogonalLine、Slope等命令实现条件判断和几何关系,通过Slider(滑块)控制光子能量、时间等参数,并借助Textfield显示数值。该范例适合高中物理或大学基础物理课程中原子物理和量子力学入门教学,也可用于数学与物理交叉领域的探究学习。

GeoGebra 命令及参数

  1. Line(R_2, M_2) → m_3
  2. Point(yAxis) → C
  3. Point(yAxis) → B
  4. Point(yAxis) → D
  5. Point(yAxis) → E
  6. Point(yAxis) → F
  7. If(t < tcollide, 0, If[t > tcollide + ttransition, ttransition, t - tcollide]) → telectron
  8. If(0 < leveli < 2, 1, 0) → testleveli1
  9. If(3 < leveli < 5, 1, 0) → testleveli4
  10. If(1 < leveli < 3, 1, 0) → testleveli2
  11. If(2 < leveli < 4, 1, 0) → testleveli3
  12. If(4 < leveli < 6, 1, 0) → testleveli5
  13. If(Energynew > (-r), 1, 0) → testA
  14. If(abs(abs(Energynew) - abs(y(E))) < r, 1, 0) → testE
  15. If(levelnumber > 5, 1, 0) → testlevel6
  16. If(abs(abs(Energynew) - abs(y(B))) < r, testlevel6, 0) → testB
  17. If(levelnumber > 4, 1, 0) → testlevel5
  18. If(abs(abs(Energynew) - abs(y(C))) < r, testlevel5, 0) → testC
  19. If(levelnumber > 3, 1, 0) → testlevel4
  20. If(abs(abs(Energynew) - abs(y(D))) < r, testlevel4, 0) → testD
  21. Line(P_2, m_3) → j_3
  22. Line(K_2, yAxis) → i_3
  23. Intersect(i_3, j_3) → T_2
  24. OrthogonalLine(M, m_3) → n
  25. Intersect(n, j_3) → P
  26. Slope(m_3) → slopephotonpath
  27. Line(A, xAxis) → f
  28. Point(f) → K
  29. OrthogonalLine(K, f) → f_2
  30. Line(C, xAxis) → h
  31. Intersect(h, f_2) → O_1
  32. Segment(C, O_1) → i_2
  33. Segment(A, K) → g_2
  34. Line(F, xAxis) → k
  35. Intersect(k, f_2) → S_2
  36. Segment(F, S_2) → l_2
  37. Line(E, xAxis) → j
  38. Intersect(j, f_2) → Q_1
  39. Segment(E, Q_1) → k_2
  40. Line(D, xAxis) → i
  41. Intersect(i, f_2) → P_1
  42. Segment(D, P_1) → j_2
  43. Line(B, xAxis) → g
  44. Intersect(g, f_2) → N_1
  45. Segment(B, N_1) → h_2
  46. If(490 < w < 510, (-((w - 510) / 20)), If[380 < w < 491, 1, 0]) → BCoeff
  47. If(440 < w < 490, (w - 440) / 50, If[580 < w < 645, (-((w - 645) / 65)), If[489 < w < 581, 1, 0]]) → GCoeff
  48. If(380 < w < 440, (w - 440) / 60, If[510 < w < 580, (w - 510) / 70, If[579 < w < 780, 1, 0]]) → RCoeff
  49. Line(I_2, L_2) → p_3
  50. OrthogonalLine(J_2, m_3) → q_3
  51. OrthogonalLine(I_2, m_3) → r_3
  52. Circle(I_2, 1) → c_3
  53. Intersect(c_3, r_3) → N_2, O_2
  54. Intersect(q_3, j_3) → W_2
  55. Circle(W_2, 1) → d_3
  56. Intersect(d_3, q_3, 1) → Z_2
  57. Midpoint(Z_2, O_2) → A_3
  58. Midpoint(I_2, W_2) → B_3
  59. Midpoint(B_3, I_2) → C_3
  60. Midpoint(C_3, I_2) → D_3
  61. Midpoint(O_2, A_3) → E_3
  62. Midpoint(E_3, A_3) → F_3
  63. Midpoint(B_3, W_2) → G_3
  64. Midpoint(I_2, O_2) → I_3
  65. Midpoint(B_3, G_3) → J_3
  66. Midpoint(A_3, Z_2) → K_3
  67. Midpoint(K_3, Z_2) → L_3
  68. Midpoint(Z_2, W_2) → M_3
  69. PolyLine(I_3, D_3, F_3, J_3, L_3, M_3) → s_3
  70. If(t > tcollide, 1, 0) → testcollide
  71. If(tcollide + ttransition < t, 1, 0) → testtimeionize
  72. Textfield(w) → InputBox1
  73. If(abs(Energyphoton) > abs(electroni), (-electroni), Energyphoton) → transitionarrow
  74. Vector(G, H) → u
  75. Segment(I, J) → l
  76. Circle(P, 1) → d
  77. Circle(L, 1) → c
  78. OrthogonalLine(L, m_3) → m
  79. Intersect(c, m, 1) → N
  80. Intersect(d, n, 1) → O
  81. Midpoint(L, P) → Q
  82. Midpoint(N, O) → R
  83. Midpoint(L, N) → S
  84. Midpoint(P, O) → T
  85. Midpoint(L, Q) → U
  86. Midpoint(L, U) → V
  87. Midpoint(N, R) → W
  88. Midpoint(W, R) → Z
  89. Midpoint(Q, P) → A_1
  90. Midpoint(Q, A_1) → B_1
  91. Midpoint(R, O) → C_1
  92. Midpoint(C_1, O) → D_1
  93. PolyLine(S, V, Z, B_1, D_1, T) → p
  94. Polygon(E_1, F_1, G_1, H_1) → poly1, e_1, f_1, g_1, h_1