S7G1 模擬光的折射
這次主要模擬光的折射,探究光線在經過不同介質的偏離角度。主要使用滑動秆來調整介質參數,並通過參數計算出折射後的位置。

任務一:製作入射角
說明:建一個單位圓,將原點設定為光線的入射點,讓 A 點在圓上運動來控制入射角的角度。

步驟:
# 建立單位圓 O
O = (0,0)
cO = Circle(O,1) # Circle 圆周
# 建圓上動點
A = Point(cO) # Point 描点
# 標出 A 到法線 (y=0) 的垂線
C = ClosestPoint(A, y=0) #ClosetPoint 最近点
sAC = Segment(A,C) # Segmengt 线段
# 標示角
aCOA = angle(C,O,A) # angle 角
# 調整顯示區域、上顏色
x = 0
y = 0
任務二:折射角的設置
說明:主要利用 n1 sin(θ1) = n2 sin(θ2) 來取得折射後的路徑。因為設置為單位圓, sin(θ1) 就以 AC 來顯示,sin(θ2) 就以 BD 來顯示。

操作步驟
# 建立控制折射率的滑動條
n1 = Slider(1,3,0.01,1,100) #Slider 滑动条
n2 = Slider(1,3,0.01,1,100)
# 先取得折射後 B 的 x 座標
xB = sAC*n1/n2
B = intersect(cO, x=xB) # Intersect 交点
D = (0, y(B))
vOB = vector(O,B) # Vector 向量
sBD = Segment(B,D) #Segment 線段
aDOB = angle(D,O,B) #angle 角度
任務三:顯示文本訊息
說明:增加文本來顯示 n1*sin(θ1) 為定值的關係,並加入臨界角度的計算。同時對於臨界角度的文本設置為 n1 > n2 時才會顯現。

操作步驟
# 插入顯示 n1*AC= n2*AD 的文本
n1 \cdot AC = [n1] \times [sAC] = [n1*sAC] \\
n2 \cdot BD = [n2] \times [sBD] = [n2*sAD] \\
# 插入顯示臨界角的文本
當 n1 \geq n2 時,入射角太大會發生全反射\\
即當 AC\cdot \frac{n1}{n2} \geq 1 \Rightarrow AC \geq \frac{n2}{n1} \\
\Rightarrow \angle AOC \geq \arcsin(\frac{n2}{n1}) = [arcsin(n2/n1)/pi*180] ^\circ

# 並且對這文本加入一個顯示條件,當 n1>n2 時才出現這文本

小結回顧
以 Geogebra 操作而言,算是中階 Lv3 難度。但用 Geogebra 不一定要用到很酷炫的技巧,重要的是通過問題拆解並利用數學語言,就可展現出一些教學上值得探究的課題。很多物理現象的底層都是用數學來刻畫,若你還有發覺哪些物理問題值得作為課件也歡迎提供來交流。

相關連結
【GGB】https://www.geogebra.org/m/hngufbhk
【Bili】https://www.bilibili.com/video/BV1K54y1m7F1/
【公众号文】https://mp.weixin.qq.com/s/Ay-KDsVDamvJCQofJRVMDA
【YouTube】https://www.YouTube.com/playlist?list=PLXH05kw-i_5L5wZPZHDwpMstzBxAy6I7G