# 拋物面鏡反射
> 作者:王一哲
> 日期:2020/9/13
這是為了展示拋物面鏡反射的性質而製作的檔案,可以由左上角的數值滑桿調整入射光與主軸的夾角 θ、入射光照射範圍 R、光線數量 N。本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案。
- [拋物面鏡凹面反射](https://www.geogebra.org/m/pg7qpvah)
- [拋物面鏡凸面反射](https://www.geogebra.org/m/qcqyq8ma)
<img height="100%" width="100%" src="https://imgur.com/WUbGZm6.gif" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凹面反射</div>
<br />
<img height="100%" width="100%" src="https://imgur.com/yFXCYdD.gif" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凸面反射</div>
<br />
## 凹面鏡繪圖步驟
1. 新增數值拉桿定義入射光與主軸的夾角 θ、入射光照射範圍 R、光線數量 N。
```latex
θ = Slider(0°, 30°, 1°)
R = Slider(1, 10, 1)
N = Slider(2, 10, 1)
```
2. 計算光線之間的距離 d。
```latex
d = R / (N - 1)
```
3. 使用點工具於 x 軸上新增焦點 O 與準線通過的點 P。
4. 畫出通過點 O、P 的直線 f 作為主軸,再畫出通過點 P 且與主軸垂直的準線 g,可以使用上方的工具列或是輸入以下的指令繪圖。
```latex
f = Line(O, P)
g = PerpendicularLine(P, f)
```
5. 畫出以點 O 作為焦點、以直線 g 作為準線的拋物線 c,可以使用上方的工具列或是輸入以下的指令繪圖。
```latex
c = Parabola(O, g)
```
<img height="100%" width="100%" src="https://imgur.com/S5ANbfO.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凹面反射繪圖步驟1 - 5</div>
<br />
6. 新增入射光通過的點初位置 points。
```latex
points = Sequence(Point({-20, (-R) / 2 + d (i - 1)}), i, 1, N)
```
7. 新增平行主軸的入射光 lines。
```latex
lines = Sequence(Line(Element(points, i), f), i, 1, N)
```
8. 新增平行主軸入射光與拋物線的交點 inters。
```latex
inters = Sequence(Intersect(c, Element(lines, i)), i, 1, N)
```
<img height="100%" width="100%" src="https://imgur.com/P0qd3G1.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凹面反射繪圖步驟6 - 8</div>
<br />
9. 旋轉入射光通過的點,調整入射光與主軸的夾角,旋轉後的點命名為 incpoints。
```latex
incpoints = Sequence(Rotate(Element(points, i), -θ, Element(inters, i)), i, 1, N)
```
10. 畫出入射光 inclines。
```latex
inclines = Sequence(Ray(Element(inters, i), Element(incpoints, i)), i, 1, N)
```
<img height="100%" width="100%" src="https://imgur.com/hDJA1bn.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凹面反射繪圖步驟9 - 10</div>
<br />
11. 於入射光與拋物線的交點畫出切線 tangents 及法線 norms。
```latex
tangents = Sequence(Tangent(Element(inters, i), c), i, 1, N)
norms = Sequence(PerpendicularLine(Element(inters, i), Element(tangents, i)), i, 1, N)
```
<img height="100%" width="100%" src="https://imgur.com/acsLdTm.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凹面反射繪圖步驟11</div>
<br />
12. 畫出反射光 reflines。
```latex
reflines = Sequence(Reflect(Element(inclines, i), Element(norms, i)), i, 1, N)
```
<img height="100%" width="100%" src="https://imgur.com/WUbGZm6.gif" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凹面反射</div>
<br />
## 凸面鏡繪圖步驟
1. 將前一個檔案另存新檔,將點 P 用拖曳到拋物線 c 的左側,再隱藏點 P 及準線。
<img height="100%" width="100%" src="https://imgur.com/KfB2ueg.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凸面反射繪圖步驟1</div>
<br />
2. 新增反射光的延長線 reflines2。
```latex
reflines2 = Sequence(Line(Element(inters, i), Element(reflines, i)), i, 1, N)
```
<img height="100%" width="100%" src="https://imgur.com/yFXCYdD.gif" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">拋物面鏡凸面反射</div>
<br />
## 相關指令的官方說明書
1. 數值滑桿 https://wiki.geogebra.org/en/Slider_Command
2. 直線 https://wiki.geogebra.org/en/Line_Command
3. 垂直線 https://wiki.geogebra.org/en/PerpendicularLine_Command
4. 拋物線 https://wiki.geogebra.org/en/Parabola_Command
5. 序列 https://wiki.geogebra.org/en/Sequence_Command
6. 點 https://wiki.geogebra.org/en/Point
7. 元素 https://wiki.geogebra.org/en/Element_Command
8. 交點 https://wiki.geogebra.org/en/Intersect_Command
9. 旋轉 https://wiki.geogebra.org/en/Rotate_Command
10. 射線 https://wiki.geogebra.org/en/Ray_Command
11. 切線 https://wiki.geogebra.org/en/Tangent_Command
12. 線對稱 https://wiki.geogebra.org/en/Reflect_Command
<br />
---
###### tags:`GeoGebra`