Google Classroom
GeoGebraGeoGebra Classroom

04 拋物線上的光線反射(試算表製作)

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

重複而枯燥的步驟,就交由電腦來處理吧

網路上有人戲稱「ctrl+c、ctrl+v」是電腦使用上偉大的發明之一,畢竟它減輕了許多枯燥且重複的工作。 而我們在前幾個作品中,為了呈現更多次的反射,就會不斷地重複同一步驟,讓可以模擬的反射次數更多。 雖然每次重複時,細節上有些微的不同,但幾乎都是重複的動作。這些重複的工作,就可以試著用電腦和程式的優勢,來減輕操作的次數。 要將這些多次重複的步驟利用電腦簡化,我目前有試過三個方法,其中一個是我最一開始使用的方法: .在物件屬性-程式中的OnUpdate,製造一個類似程式常用的For迴圈(While迴圈),來重複這些步驟。  不過這招所需要的前置作業和操作較為複雜,也不是那麼好用,有興趣的人可以去看我之前的圓錐曲線反射作品。 後來向藍邦偉老師和官長壽老師學習後,又多了兩個方法: .利用迭代指令IterationList製作 .利用試算表製作 在此處,我們會使用比較好理解的試算表製作方式

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

步驟1 製作拋物線與打開試算表

(1) 在指令列輸入指令:y = 0.25*x^2 (此拋物線的焦點會位於(0,1) ) (2) 在"檢視"之中,打開試算表視窗

步驟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' )。 (3) 做出射線與拋物線f的交點,得到C點。

步驟5 將物件放入試算表

(1) 將點更名:A→A1、 B→A2、 C→A3、 。 (2) 將過點A2(原本的點B)的法線,更名為B2 。 (3) 將點A1(原本的點A)的反射點A',更名為C2 。 (4) 將射線更名為D2 。 (5) 將向量A1A2(原本的向量AB)更名為E2。

更名之後,物件就會被放到試算表之中

更名之後,物件就會被放到試算表之中

步驟6 利用試算表特性,複製指令

參考下圖操作 (1) 在試算表上框起B2:E2,並將其複製到B3:E3 。 (2) 接著在試算表上框起A3:E3,複製到A4:E10 。 如此,便能快速增加8次的反射模擬。
將B2、C2、D2、E2複製到B3、C3、D3、E3
將B2、C2、D2、E2複製到B3、C3、D3、E3
將A3、B3、C3、D3、E3複製到A4、B4、......、D10、E10
將A3、B3、C3、D3、E3複製到A4、B4、......、D10、E10

步驟7 隱藏不必要物件

隱藏不必要出現的法線、對稱點和射線。 而試算表之中的B,C,D欄,即是製作過程中,所製造出來的法線、對稱點和射線。 利用試算表的特性,將B,C,D欄全部框起來之後,將其物件隱藏。 PS:利用試算表製造的物件,會被視為「輔助物件」,預設上不會在代數區上顯示。 要更改這些物件的屬性等等,可以直接對著儲存格案右鍵,就可以調整了。
將B,C,D欄的物件隱藏
將B,C,D欄的物件隱藏

步驟8 調整特殊情形的射線顯示

(1) 當起始光源A1到B1(原本的A到B)之間會通過焦點時,光線反射一次後會遠離拋物線,所以要讓射線D2顯示。 將射線D2的顯示條件設定為「 x(A2) == x(C2) 」,同時製造向量A2C2,讓射線D2看起來更有方向感,並使該向量的顯示條件亦設為「 x(A2) == x(C2) 」。 (2) 當起始光源A1到B1(原本的A到B)的方向平行對稱軸時,光線反射兩次後會遠離拋物線,所以要讓射線D3顯示。將射線D3的顯示條件設定為「 x(A3) == x(C3) 」,同時製造向量A3C3,讓射線D3看起來更有方向感,並使該向量的顯示條件亦設為「 x(A3) == x(C3) 」。