2018年2月13日 星期二

球面像差

球面像差
 日期:2018/2/13
用球面作成的凹面鏡無法將平行主軸的入射光集中在同一個點,如果想要讓球面鏡有接近抛物面鏡的效果,入射光必須靠近主軸,球面的曲率半徑要夠大。我的目標是畫出可以自己調整半徑、入射光範圍、入射光數量的圖,另外也用同樣的方式畫出抛物線版本的圖。GeoGebraTube 的連結在此:1. 球https://ggbm.at/TEJPHsya   2. 抛物線  https://ggbm.at/d2khJ7t2 
球面像差最終成果

2018年2月12日 星期一

二次曲線光學性質

二次曲線光學性質
 日期:2018/2/12
更新:
感謝晞安老師提醒,雙曲線也有光學性質,從一個焦點發出的光線經過雙曲線反射後,反射光的延長線會經過另一個焦點。
以前在高中數學會學到二次曲線的光學性質:1. 從橢圓其中一個焦點發出的光,經過橢圓面反射後會通過另一個焦點。 2. 平行主軸的入射光經過抛物面反射後會匯聚在焦點。基本上物理只會用到抛物面,不過我把兩個圖都畫出來,GeoGebraTube 的連結在此:1. 橢圓 https://ggbm.at/GGbB9kGH   2. 抛物線https://ggbm.at/RSPYhcBF   3. 雙曲線 https://ggbm.at/dA3JehQw 

橢圓繪圖步驟

1. 新增控制半長軸 a、焦距 c 的數值滑桿,指令為
a = Slider(1, 5, 0.1)
c = Slider(0, a-0.1, 0.1)
由於橢圓 a > c,故 c 的極大值設為 a - 0.1。
2. 在原點上新增點 O。
O = Point({0, 0})
3. 利用 Segment 指令,以 O 為起點向右畫出長度為 c 的線段,線段的右端會自動新增一個點,將它重新命名為 C1,再用點對稱畫出左側的焦點 C2,指令為
f = Segment(O, c)
C_2 = Reflect(C_1, O)
這樣做的用處在於,當我們拖曳 C1時只會旋轉橢圓,不會改變焦距 c。

2018年2月8日 星期四

折射定律

折射定律
 日期:2018/2/8
折射定律 (law of refraction) 或稱為司乃耳定律 (Snell's law) 的型式為 n1 sin θ1 = n2 sin θ2 ,當 n1 > n2 時可以算出臨界角 θc = sin-1 (n2 / n1),若 θ1 > θc 則發生全反射。我已經將檔案上傳至 GeoGebraTube,連結在此 https://ggbm.at/Xcxnvk2r   

折射定律步驟

1. 新增控制兩介質折射率n1n2、入射角 α 的數值滑桿,指令為
n_1 = Slider(1, 2, 0.1)
n_2 = Slider(1, 2, 0.1)
α = Slider(0°, 89°, 1°)
再手動將 n1 調整為1,n2 調整為1.38,α 調整為 60°
2. 在原點上新增點 O,在 x 軸上畫直線作為兩介質的交界面,在 y 軸上畫直線作為法線
O = Point({0, 0})
f = Line(O, xAxis)
g = Line(O, yAxis)
3. 在法線上新增點 A,再拖曳到(0, 4),畫上過點 A 並垂直於法線 g 的直線 h
A = Point(g)
h = PerpendicularLine(A, g)
4. 將點 A 對點 O 順時鐘方向旋轉角度 α 變為點 A',畫出射線 i 作為入射光,再隱藏點 A'
A' = Rotate(A, -α, O)
i = Ray(O, A')
5. 畫出射線 i 與直線 h 的交點 B,再畫出角 BOA 作為入射角 θ1
B = Intersect(h, i)
θ_1 = Angle(B, O, A)
折射定律範例步驟 1 ~ 5 成果

光槓桿

光槓桿
 日期:2018/2/8
光槓桿是反射定律的應用,當入射光不動時,如果平面鏡旋轉角度 θ ,則反射光會旋轉 2θ。我已經將檔案上傳至 GeoGebraTube,連結在此 https://ggbm.at/yBd3mBDr

光槓桿繪圖步驟

1. 選取新點工具,用滑鼠畫出點A(-5,0)、B(5,0)。
2. 選取線段工具,用滑鼠左鍵在點A、B上各按一下。或是用指令
f = Segment(A, B)
將線段調粗、改為藍色虛線當作平面鏡原來的位置。
3. 新增控制平面鏡夾角θ用的數值滑桿,最小值0°,最大值90°,增量1°。或是用指令
θ = Slider(0°, 90°, 1°)
可以使用快速鍵 Alt + O 輸入 ° ,這樣會比按虛擬鍵盤方便。
4. 選取中心點工具,用滑鼠左鍵在點A、B上各點一下畫出中心點C,也就是入射光照到平面鏡的位置,平面鏡旋轉的中心點。或是用指令
C = Midpoint(A, B)
光槓桿步驟 1 ~ 4 成果

GeoGebra 文章目錄

GeoGebra 文章目錄
 更新日期:2018/2/8
我將 GeoGebra 相關的文章及檔案連結都整理在這篇裡,之後如果有新的文章也會同時更新這個目錄。上傳到 GeoGebraTube 的檔案,我有試著用 Google Chrome 63.0.3239.132、FireFox Quantum 57.0.4、Microsoft Edge 41.16299.15.0、Internet Explorer 11.192.16299.0 等4種瀏覽器打開,都可以正常執行。


2018年2月6日 星期二

反射定律

反射定律
 日期:2018/2/6
由於 GeoGebra 中有畫垂直線和線對稱的工具,理論上用 GeoGebra 畫光的反射應該會是一件很簡單的事情,只是沒想到還是需要多花點時間調整圖才會好看,以下是2個例子。

反射定律示意圖繪圖步驟

1. 選取新點工具,用滑鼠在繪圖區上畫出點A、B。在這裡不要用指令畫點,因為輸入指令時會指定點的位置,之後沒辦法用滑鼠拖曳改變點的位置。
2. 選取線段工具,用滑鼠左鍵在點A、B上各按一下。或是用指令
f = Segment(A, B)
將線段調粗、改為藍色當作平面鏡。
線段工具選單

2018年2月5日 星期一

惠更斯原理示意圖

惠更斯原理示意圖
 日期:2018/2/5
惠更斯原理(Huygens principle)在基礎物理1及選修物理上各會出現一次,雖然都只有定性敘述,但是為了解釋這個原理,我必須把圖畫得非常精準才行,下圖是我以前用  LibreOffice Draw 繪製的惠更斯原理示意。但是這個圖上每個元件的位置都要手動去調整,如果想要增加點波源的數量或是改變波長,等於整張圖都要重畫,因此我又想到用 GeoGebra 來畫類似的圖。
使用 LibreOffice Draw 繪製的惠更斯原理示意圖

2018年2月2日 星期五

水波節線、腹線

水波節線、腹線
 日期:2018/2/2
這是一個很常見的指考題:「假設在水波槽中有兩個同相的點波源,點波源間的距離為L,水波波長為λ,請計算水波槽上節線與腹線的數量分別為多少?」解答如下:「由於兩個波源同相,兩個水波在正中央的波程差為0,中央一定是腹線,由中央腹線向左右兩側移動λ/4會遇到節線,再移動λ/4會遇到腹線,按照這個規律就可以找到所有的節線及腹線。」但是否能用 GeoGebra 畫出答案呢?下圖就是最後的成果。我也有將檔案傳到 GeoGebra 的網站,可以直接在網頁上玩玩看https://ggbm.at/uSjh5KWT
L = 12、λ = 2 ~ 12 的節線、腹線位置

2018年2月1日 星期四

圓周上的駐波

圓周上的駐波
 日期:2018/2/1
我以前寫過一篇文章〈用gnuplot繪製圓形駐波〉,這裡面畫的圖是用在選修物理的內容:「用電子物質波形成駐波解釋電子的穩定態」,但是用 gnuplot 實在太像在寫程式,現在用 GeoGebra 反而簡單多了。
圓周上的駐波 n = 5

駐波

駐波
 日期:2018/2/1
我們在選修物理當中會學到繩子上的駐波,分為兩端皆為固定端或自由端一端固定一端自由兩種類型,利用行進波以及波的疊加兩篇文章中學到的內容,可以很簡單地就做出這兩種類型駐波的動畫。

兩端皆為固定端或自由端

  1. 插入控制整數 n 的數值拉桿,最小值1,最大值10,增加1。
  2. 設定以下的變數值:振幅 A = 2、繩子長度 L = 10、週期 T = 2*π、角頻率 ω = 2*π / T、波長 λ = 2*L / n,角波數 k = 2*π / λ。
  3. 插入控制相位差 δ 的數值拉桿,最小值0,最大值 2*π,增加 π/2。
  4. 插入控制時間 t 的數值拉桿,最小值0,最大值T,增加0.05,動畫速度2,重複設為遞增。
  5. 用以下指令設定函數
    f(x) = If(0 <= x <= L, A*sin(k*x - ω*t))
    g(x) = If(0 <= x <= L, A*sin(k*x + ω*t + δ))
    h(x) = f(x) + g(x)
  6. 當 δ = 0 時,兩端皆為固定端;當 δ = π/2 時,兩端皆為自由端。
  7. 開始動畫。
  8. 兩端皆為固定端、n = 1 的駐波