折射定律

作者:王一哲
日期:2018/2/8

折射定律 (law of refraction) 或稱為司乃耳定律 (Snell's law) 的型式為

n1sinθ1=n2sinθ2

n1>n2 時可以算出臨界角

θc=sin1(n2n1)

θ1>θc 則發生全反射。本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案,網址為 https://ggbm.at/Xcxnvk2r


折射定律步驟

  1. 新增控制兩介質折射率

    n1
    n2
    、入射角
    α
    的數值滑桿,指令為

    ​​​​n_1 = Slider(1, 2, 0.1)
    ​​​​n_2 = Slider(1, 2, 0.1)
    ​​​​α = Slider(0°, 89°, 1°)
    

    再手動將

    n1 調整為1,
    n1
    調整為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)
    
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
折射定律範例步驟 1 ~ 5 成果

  1. 計算

    n1>n2 時的臨界角
    θc

    ​​​​θ_c = If(n_1 > n_2, (asin(n_2 / n_1) / π*180)°, 0°)
    

    上式中

    asin=sin1,但是輸出的單位為弧度 (rad),2π rad = 360°,為了將單位換回 ° 因此加上了 / π*180°

  2. 計算折射角 β

    ​​​​β = If(n_1 <= n_2 || θ_1 <= θ_c, (asin(n_1 sin(θ_1) / n_2) / π*180)°)
    

    上式中 || 代表,當

    n1n2
    θ1θc
    成立時,用後面的式子計算折射角,若條件不成立則沒有定義折射角。

  3. 在法線上新增點 C,再拖曳到(0, -4),畫上過點 C 並垂直於法線 g 的直線 k

    ​​​​C = Point(g)
    ​​​​k = PerpendicularLine(C, g)
    
  4. 將點 C 對點 O 順時鐘方向旋轉角度 β 變為點 C',畫出射線 j 作為折射光,再隱藏點 C'

    ​​​​C' = RotateC, -β, O)
    ​​​​i = Ray(O, C')
    
  5. 畫出射線 j 與直線 k 的交點 D,再畫出角 DOC 作為折射角

    θ2

    ​​​​D = Intersect(k, j)
    ​​​​θ_2 = Angle(D, O, C)
    
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
折射定律範例步驟 6 ~ 10 成果

  1. 畫出發生全反射時的反射光

    ​​​​l = If(n_1 > n_2 && θ_1 > θ_c, Reflect(i, g))
    

    上式中 && 代表,當

    n1>n2
    θ1>θc
    都成立時射線 i 對法線 g 的線對稱。但是在輸入指令之後進到屬性裡面看定義會變成

    ​​​​If(n_1 > n_2 ∧ θ_1 > θ_c, Ray(Reflect(O, g), Reflect(A', g)))
    

    這是 GeoGebra 自動轉換的,不需要管它。

  2. n1 調整為1.5,
    n2
    調整為1,試試看當
    α
    增加時會不會發生全反射,如果可以就成功了。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
折射定律範例步驟 11 ~ 12 成果

  1. 再將
    n1
    調整為1,
    n2
    調整為1.38,
    α
    調整為 60°。選取測量距離工具,用滑鼠左鍵在點O、B上各點一下,標示OB之間的距離。接著用同樣的作法,標示OA、AB、OC、OD、CD之間的距離。
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
測量距離工具選單

  1. 用以下指令新增是否顯示角度、距離的核取方塊。
    ​​​​angle = Checkbox({θ_1, θ_2})
    ​​​​length = Checkbox({文字AB, 文字CD, 文字OA, 文字OB, 文字OC, 文字OD})
    
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
折射定律範例最終成果

相關指令的官方說明書

  1. https://wiki.geogebra.org/en/Point_Command
  2. 垂直線 https://wiki.geogebra.org/en/PerpendicularLine_Command
  3. 線對稱 https://wiki.geogebra.org/en/Reflect_Command
  4. 畫角度 https://wiki.geogebra.org/en/Angle_Command
  5. 數值滑桿 https://wiki.geogebra.org/en/Slider_Command
  6. 旋轉 https://wiki.geogebra.org/en/Rotate_Command
  7. 射線 https://wiki.geogebra.org/en/Ray_Command
  8. 條件 https://wiki.geogebra.org/en/If_Command


tags:GeoGebra