---
# System prepended metadata

title: 司乃耳定律

---

# 司乃耳定律
## 簡介

![](https://i.imgur.com/SKphCdT.png)
(From Wikipedia)

<br>
<br>

司乃耳定律（亦稱折射定律）在幾何光學中是十分重要的一環。其可以用來描述光波在不同種相鄰介質傳播時所發生的折射現象，也就是其入射角與折射角之間的關係。

司乃耳定律的公式可以從費馬定理（又名最短時間原理）推得。所謂的費馬定理是指光波傳遞的路徑必是光程取極值的路徑，亦即需時最少的路線。下方為對費馬定理之位移時間關係式取微分的方法，已推導出司乃耳定律的過程。你好啊


<br>
<br>

![](https://i.imgur.com/56FpVZ9.png)
(From Wikipedia)
<br>

![](https://i.imgur.com/aI7QPVu.png)

<br>
<br>

光線從折射率較高的介質進入到折射率較低的介質，且入射角大於等於臨界角（critical angle）時會發生所謂的全反射，也就是所有的入射光播會發生反射現象而完全不會折射。如下圖所示：

<br>


![](https://i.imgur.com/4xyFTKW.png)
(From Wikipedia)
<br>

臨界角的關係：
![](https://i.imgur.com/Z0YvsH3.png)

## 程式
這次的程式跟以往不同，我們採用GUI的模式來設計，首先創立一個GUI app並裝上不同的功能元件（axis、edit text、
static text...）如下：

![](https://i.imgur.com/T3rLwWb.png)

<br>
<br>

在擺設好後，按下綠色播放鍵便會執行GUI程式生成，matlab會自動生成各個元件的生成函式和回乎函式如下：


![](https://i.imgur.com/7m5Iqs0.png)


<br>
<br>

最後我們只要在對應的元件函式下方加入司乃耳定律的判斷條件和作圖方法如圖(詳細請見程式碼)：


![](https://i.imgur.com/ond1FLY.png)

<br>
<br>

便無法令GUI成功運作：

![](https://i.imgur.com/JzeEK8C.png)

<br>

## 練習
請同學下載程式碼並嘗試以下試題:

1.設計一程式碼可以立即算出其臨界角和折射情況。
2.設計一程式碼可以模擬光波在三層介質中的傳遞情況。
3.設計一程式碼可以模擬出下圖光波穿過一圓球面介質的傳遞情況。
![](https://i.imgur.com/LNGYqRR.png)
