01 拋物線上的光線反射(一次)

在此處製作 拋物線上的光線反射(一次)
步驟1 製作拋物線
在指令列輸入指令:y = 0.5*x^2
步驟2 製作光源起點A,以及最初的反射點B
.確認一下拋物線的名稱是否為f,以下以拋物線名稱為f為例去操作
(1) 在拋物線內製造一新點A(A點必須要在拋物線的上方)
(2) 在拋物線上製造一點B。
(3) 製作向量AB,作為光線的示意。
步驟3 製作拋物線在B點上的切線,再製作拋物線上在B點上的法線
(1) 製作切線:可以利用切線工具
,或者輸入指令Tangent(B, f),得到直線g。
(2) 再製作法線:可利用垂直線工具
(垂直切線g、過B點),或輸入指令PerpendicularLine(B,g),得到直線h。


步驟4 製作反射光線
.先做反射路徑:這裡會利用射線來製造出光線下一次碰到拋物線的位置。
(1) 做點A對法線h的對稱點A',可用線對稱工具
或者指令Reflect(A, h)。
(2) 做出射線BA',可用射線工具
或者指令Ray(B, A'),得到射線i。(注意B, A'的順序)
(3) 做出射線BA'與拋物線f的交點
。此處交點可能會做出兩個點,一個與B點重合,另一個點即是下一次光線碰到拋物線的位置,將其重新命名為C。
(4) 製作向量BC
,作為光線的示意。




步驟5 隱藏不必要的物件
.切線、法線和射線,在這裡都是不需要顯示的物件,將其隱藏。
.對稱點A'亦不需要顯示,將其隱藏。