Google Classroom
GeoGebraGeoGebra Classroom

02 拋物線上的光線反射(多次)

拋物線的三次反射示意圖
拋物線的三次反射示意圖

與前次不同之處

1. 對稱點的選擇 與之前不同,之後為了找到反射方向所做出的對稱點,會用略微不同的方式製作,以避免光線往拋物線外面射出。 2. 射線的設置 之前所做出的射線,會與拋物線有兩個交點,一個是原本的反射點,另一個是下一個反射點。這裡會用一個小小技巧,讓射線與拋物線只有一個交點(下一個反射點)。 3. 起始光線平行對稱軸或經過焦點 此時光線經過1~2次反射之後,就會往無限遠處射出,也就是說不會有下一個反射點了,也不會有用來模擬光線的向量。此時就要再用其他方式,將這樣的光線製造出來。

在此處製作 拋物線上的光線反射(多次)

步驟1 製作拋物線

在指令列輸入指令:y = 0.25*x^2 (此拋物線的焦點會位於(0,1) )

步驟2 製作光源起點A,以及最初的反射點B

.確認一下拋物線的名稱是否為f,以下以拋物線名稱為f為例去操作 (1) 在拋物線內製造一新點A(A點必須要在拋物線的上方) (2) 在拋物線上製造一點B。 (3) 製作向量AB,作為光線的示意。

步驟3 製作拋物線在B點上的法線

.相較於切線,實際上更重要的是法線。 .這裡就不再另外製造出切線,而是將切線放入雙重指令。 .製作法線:輸入指令PerpendicularLine(B, Tangent(B, f) ),得到直線g。

步驟4 製作反射光線

(1) 做點A對法線g的對稱點A',可用線對稱工具或者指令Reflect(A, g)。 (2) 做出射線,輸入指令Ray( 0.99*B+0.01*A' , A' )並將其重新命名為r1。 (3) 做出射線r1與拋物線f的交點,得到C點。 (4) 製作向量BC,作為光線的示意。

步驟5 製作下一個反射點

(1) 製作法線:輸入指令PerpendicularLine(C, Tangent(C, f) ),得到直線h。 (2) 利用前一個反射點,做點B對法線h的對稱點B',或者指令Reflect(B, h)。 (3) 做出射線,輸入指令Ray( 0.99*C+0.01*B' , B' ),並將其重新命名為r2。 (4) 做出射線r2與拋物線f的交點,得到D點。 (5) 製作向量CD,作為光線的示意。

步驟6 重複步驟5,直到做出足夠的反射點

.當光線不是平行對稱軸或者經過焦點時,光線會在拋物線上反射無限次。 .大多時候光線反射幾次後,就會跑到很遠的地方。所以只要做4~6次的反射,就足以應付大多數的情況了。

步驟7 調整特殊情形的射線顯示,並隱藏不必要物件

(1) 當起始光源A到B之間會通過焦點時,光線反射一次後會遠離拋物線,所以要讓射線r1顯示。 將射線r1的顯示條件設定為「 x(B) == x(A') 」,同時製造向量BA',讓射線r1看起來更有方向感,並使該向量的顯示條件亦設為「 x(B) == x(A') 」。 (2) 當起始光源A到B的方向平行對稱軸時,光線反射兩次後會遠離拋物線,所以要讓射線r2顯示。將射線r2的顯示條件設定為「 x(C) == x(B') 」,同時製造向量CB',讓射線r2看起來更有方向感,並使該向量的顯示條件亦設為「 x(C) == x(B') 」。 (3) 隱藏不必要出現的法線、射線和對稱點。