巨集


三角形的內切圓

三角形內切圓的圓心, 到三個邊 (垂直距離) 必須等距, 所以它同時落在三條角平分線上。 要畫內切圓, 就要先畫出至少兩條角平分線。

先開一個新的圖形分頁, 畫上三點 A,B,C, 我們試著找出角 ABC 的角平分線。 繪製角 ABC 的角平分線

  1. 以 B 為圓心, A 為圓上一點, 畫一個圓。
  2. 畫射線 BC, 與圓交於點 D。 現在 ABD 是一個等腰三角形。
  3. 點出 A 與 D 的中點, 稱為 E。 直線 BE 就是 ABC 的角平分線。

這些步驟有點囉嗦, 而且為了求內切圓的圓心, 必須畫兩條角平分線, 最後圖案可能會很複雜。 巨集 (Macro) 的功能, 就是要簡化重複的, 機械化的動作, 並且把複雜的中間步驟藏起來。 我們現在就將剛才製作角平分線的動作錄製起來: 建議 「巨集說明」 當中清楚且按照順序描述所有輸入輸出參數

  1. 選取選單的 "巨集 (Macro) ==> 製作巨集 (Construct Macro)", 看到它跳出一個對話框。
  2. 讀完說明後按 「下一頁 (Forward)」, 開始點選輸入參數。 依序點選點 A,B,C。 如果不小心點到不要的物件, 再點一次就會取消這個物件。
  3. 再按 「下一頁 (Forward)」 然後點選輸出參數 -- 直線 BE。
  4. 再按 「下一頁 (Forward)」, 為你的巨集取個名字, 例如叫做 「角平分線」, 並在下方填入一些說明。 建議在 「巨集說明」 當中, 清楚且 按照順序 描述所有輸入輸出參數。 最後按 「套用 (Apply)」, 就完成巨集的定義了。

再開一個新的圖形分頁, 畫上三角形 PQR。 我們要畫它的內切圓。 三角形的內切圓

  1. 選取選單的 "巨集 (Macro) ==> 執行巨集 (Evaluate Macro)", 看到它跳出一個對話框。
  2. 讀完說明後按 「下一頁 (Forward)」, 開始選擇巨集。 在 「角平分線」 上面點一下, 讓它從灰色變成藍色, 表示我們選了這個巨集。 (現在只有一個巨集可以用, 其實不選也沒有關係; 如果有很多個巨集可以選, 它們的名字就會出現在對話框的上方。)
  3. 奇怪, 「下一頁」 還是灰色的, 按不下去? 現在已經可以開始點選物件啦。 請依序點選點 P,Q,R 就會出現一條新的直線, 它是角 PQR 的角平分線。
  4. 再依序點 Q,R,P, 就會出現角 QRP 的角平分線。
  5. 上述兩線的交點就是內切圓的圓心。 叫它 O 吧。
  6. 確認一下 O 也落在第三條角平分線上: 連結 PO 線段, 並用量角器分別度量角 QPO 及角 RPO, 看看角度是否相等。
  7. 從 O 對三角形的任何一邊畫垂直線, 得到的交點就是內切圓與三角形 PQR 一邊的切點。 從而可以畫出內切圓。
  8. 最後記得存檔時, 要 「同時儲存數份文件 (save Multiple)」 不然巨集就泡湯了。

三角形內切圓的 .fgeo 圖 (含巨集)

顯微鏡成象

顯微鏡 由兩個凸透鏡構成 -- 接近被觀察物的物鏡, 及接近眼睛的目鏡。 物鏡先將物體第一次放大成象於鏡身當中 (想當然是倒立實象), 然後目鏡將第一次的成象再度放大成為第二次的象。 因為從目鏡緊貼著眼睛, 所以可以想見沒有足夠的距離讓第二次成象成為實象。 因此第二次的象必須是放大虛象, 也就是說一次成象相對於目鏡的位置, 必須在一倍焦距之內。

把這段文字念給學生聽, 可能有一半的人會睡著。 試試 drgeo 吧! 既然我們會用 drgeo 展現凹凸透鏡的成象原理, 當然顯微鏡也沒有什麼困難了。 但是每成象一次, 就要重複做許多相同的動作, 非常麻煩。 這又是巨集派上用場的時候了。

先把 「凸透鏡成象」 重畫一次:

  1. 畫水平線 AB, 並另外在線上由左至右依序任取四個一維的自由點 Co, Fo, Ce, Fe, 分別當做物鏡鏡面中心, 物鏡焦點, 目鏡鏡面中心, 目鏡焦點。
  2. 在 Co 的左側, 直線 AB 上下不遠處, 畫一個很小的圓 C 當做被觀察物, 並在圓上任取一點 P0。 (C 與 AB 相交也沒有關係, 接近中線 AB 成象效果比較不會失真。)
  3. 根據凹凸透鏡的成象原理, 使用 Co 與 Fo 兩點, 逐步畫出 P0 的一次成象 P1。
  4. 用軌跡工具畫出小圓 C 的象, 確認一下它是一個橢圓。

其次製作巨集, 把剛才的動作 「錄」 下來:

  1. 選取選單的 "巨集 (Macro) ==> 製作巨集 (Construct Macro)"。
  2. 按 「下一頁 (Forward)」, 開始點選輸入參數。 依序點選: 點 P0, 直線 AB, 點 Co, 點 Fo。
  3. 再按 「下一頁 (Forward)」 然後點選輸出參數 -- 點 P1。
  4. 再按 「下一頁 (Forward)」, 為你的巨集取個名字, 例如叫做 「透鏡成象」, 並在下方填入一些說明。 建議在 「巨集說明」 當中, 清楚且 按照順序 描述所有輸出入參數。 最後按 「套用 (Apply)」

建議 「巨集說明」 當中清楚且按照順序描述所有輸入輸出參數

接下來要拿剛才定義的巨集, 作用在 P1 上面, 產生二次成象 P2。

  1. 選取選單的 "巨集 (Macro) ==> 執行巨集 (Evaluate Macro)"。
  2. 按 「下一頁 (Forward)」, 並且在 「透鏡成象」 上面點一下, 選取這個巨集。
  3. 奇怪, 「下一頁」 還是灰色的, 按不下去? 現在已經可以開始點選物件啦。 請依序點選: 點 P1, 直線 AB, 點 Ce, 點 Fe, 就會出現一個新的點, 它就是點 P1 在目鏡折射之下所成的影象, 叫它 P2 吧。 因為顯微鏡放大的效果超誇張的, P2 有可能飛到很遠的地方, 畫面上找不到。 建議調整 Fo 與 Fe, 用力找一下。
  4. 最後用軌跡工具, 以 P0 為自由點, P2 為應變點, 畫出小圓的象。

運氣好的話, 二次成象很可能是一個扁扁寬寬的橢圓 (運氣不好的話, 還會是雙曲線的一葉)。 從這裡可以看出被觀察物的 "厚度方向" (直線 AB 的方向) 被顯微鏡放大的倍數最高。 (Help! 請生物老師把這個觀察與我們使用顯微鏡的經驗對照說明一下) 看來我們得重畫一張圖, 或至少重做一個被觀察物 ... 且慢! 先別急著刪除小圓。 趁小圓還在時, 先另外製作一個巨集。

  1. 以點 P0, 直線 AB, 點 Co, 點 Fo, 點 Ce, 點 Fe 作為輸入參數; 以點 P1 及點 P2 作為輸出參數, 建立一個新巨集叫做 「顯微鏡成象」。
  2. 現在可以刪除小圓。
  3. 重新畫一條很短, 大約垂直於 AB 的線段 (但不要用垂直工具真的畫垂直線), 當做新的被觀察物, 並在線段上任取一點 P0。
  4. 執行巨集 「顯微鏡成象」, 依序以新的 P0, 及原先的直線 AB 和 Co,Fo,Ce,Fe 各點作為輸入參數, 看它產生兩個新的點。 這就是 P0 的一次成象及二次成象。 一樣, 分別叫它們 P1 與 P2 好了。 P1 與 P2 的位置可能離畫面中心很遠, 或許需要調整一下 Fo 與 Fe 把它們拉入畫面。
  5. 用軌跡工具, 畫出短線段的一次成象與二次成象。
  6. 存檔時, 一樣要記得 「同時儲存數份文件 (save Multiple)」

顯微鏡成象原理

從這裡可以看出: 製作巨集的過程當中用到的物件即使不復存在, 巨集一樣還是可以用。 又, 製作巨集時, 有時候會無法完成最後一步 (填完巨集名稱及描述之後, 按 「套用 (Apply)」 卻沒有反應)。 這有幾個可能:

  1. 輸入參數太少, 不足以算出輸出參數。 例如製作 「透鏡成象」 時, 遺漏了直線 AB
  2. 輸出參數太複雜。 例如想按 P1, 卻不小心按到 P1 的軌跡

無論如何, 都可以用 「上一步」 回去編修。

又, 製作巨集時, 輸入參數應盡量取 自由物件/自變量, 避免取衍生物件/應變量。 例如剛才如果先畫鏡面, 再用垂直功能畫水平線 AB, 則 AB 變成衍生物件, 用它來錄巨集, 執行結果很可能出錯。

顯微鏡成像問題的 .fgeo 圖 (含巨集)

作業

平面上的點與線之間, 可以透過單位圓形成對偶的關係。 定義點 (a,b) 的對偶為直線 ax+by=1; 反之亦然。 欲求點 A 的對偶線 A', 可以過 A 對單位圓做切線, 則兩切點的連線即是 A' 請繪圖表現此定理: 兩點 A 與 B 各自求對偶線 A' 與 B', 則其交點 C 等於兩點連線的對偶。

相對於單位圓的對偶關係

參考資料

  1. C. Robert Bagnell, Jr. Image Optical Path