2019年8月7日 星期三

尺規作圖遊樂場 Dr. Geo

過圓外一點 C 做切線 CE 跟 CF 還記得小時候學的 (沒有刻度的) 直尺與圓規作圖嗎? 光用這兩個工具, 就可以畫出相似三角形、 三角形的外接圓/內切圓等等圖形。 這是很燒腦又很好玩的益智遊戲。 用電腦畫更好玩, 因為繪圖完成後, 你可以用滑鼠抓著原圖的頂點或圓心, 改變原圖 (例如三角形) 的大小/形狀/位置的同時, 看著衍生圖 (例如外接圓或內切圓) 跟著變動, 超有成就感! 十幾年前我寫過 DrGeo: 物理老師也會心動的幾何教學玩具。 後來 Dr. Geo 大改版; 幾個月前得知: 新版的 Dr. Geo 不僅支援中文顯示, 也支援中文輸入, 今天終於要來重寫一篇新版的介紹文了。

一、 欣賞現成作品

每學期上課都拿三角形外接圓來示範 Dr. Geo, 有點玩膩了。 今天換一下題目吧: 平面上給定線段 AB 及另一點 C。 以 A 為圓心, AB 為半徑, 畫一圓 O 。 求 「通過 C 點的圓 O 的兩條切線 CE、CF 及對應的切點 E 與 F」。 先別急著往下拉; 先趁吃飯或洗澡, 給自己一點時間慢慢想一下吧。

在此同時, 請到 Dr. Geo 下載頁面 抓回檔案。 我下載的是 GNU/Linux 版。 以我的 lubuntu 18.04 (或其他 debian 系列的系統) 來說, 另外還需要安裝 32bit 相容支援套件 (i386 architecture):

dpkg --add-architecture i386
apt install libcairo2:i386 libgl1-mesa-glx:i386
  

如果執行 ./DrGeo.sh 還是失敗, 可以這樣尋找欠缺的函式庫: cd Contents/vm/lib/pharo/5*/ ; ldd *.so | grep -i 'not found' 再用 "debian" 及函式庫名稱找出還需要安裝哪些套件。

不論是哪個作業系統, 最終進入 DrGeo 之後, 其實都沒太大差別, 因為 Dr. Geo 以 pharo 撰寫。 Pharo 是從 squeak 衍生出來的; squeak 是 smalltalk 的一種; smalltalk 是一個很古老但想法很先進的程式語言加虛擬機。 關於 smalltalk 的族譜及歷史, 可以參考 smalltalk 系列語言族譜 「蘋果電腦沒能完整抄襲的技術」

把下載回來的 DrGeo 解壓縮、 進入 DrGeo 目錄、 chmod a+x DrGeo.sh、 執行 DrGeo.sh 。 在一片灰色虛無桌面上用滑鼠 (左鍵) 點一下, 出現中文版系統選單 (system menu)。 先點選 「開啟一個圖稿」、 點下方 「範例」 分頁。 這裡有很多網友畫的圖, 其中 Lens 跟 Gravity 是我畫的。

選取 Lens 來玩玩看好了。 這是凹凸透鏡成像。 抓著左邊的小人動一下, 看看右邊的成像有什麼變化。 還有焦點 (Focus) 也可以動一下。 點選 「橡皮擦」 ("刪除物件") 與 「板手」 ("編輯物件屬性") 之間的彩色九宮格, 就可以看到製圖過程的隱藏線, 看到這圖是依據光學原理畫出來的: (1) 平行於軸線的光線通過透鏡時轉向焦點 (2) 通過鏡心的光線方向不變。 看完後, 再點選橡皮擦左邊的圖示, 恢復 「選取並移動一個物件」 模式。

Dr. Geo 視窗右下角的兩個綠色滾輪可以調整視野範圍; 右上角的橘色滾輪可以拉近拉遠。 左邊文字顯示製圖步驟。 左下角的文字提示顯示目前的狀態: 選取/移動? 正在畫線段? 正在畫圓? ... 圖示工具列上面的快捷按鍵, 其實在最上方的文字選單裡都找得到。

好, 接下來我們要畫圖了。 關於 「通過圓外一點做切線」, 心中已經有想法了嗎? 如果還沒有, 先複習 尺規作圖常用動作, 再努力想一下吧!

蔡想想

想想、 再想想~~



















提示: 直徑對應的圓周角必為直角。

蔡想想

再想想嘛~~



















二、 過圓外一點做切線

好的, 那就公佈答案囉。 連接 AC, 以它為直徑畫一圓 P。 O 跟 P 的兩個交點 E 跟 F 就是切點。 直線 CE 跟直線 CF 就是切線。 因為角 AEC 跟角 AFC 都是直角。

  1. 點選 「檔案」=>「新建」 創建一張新的畫布。 點兩下新視窗的標題列讓它 (在 pharo 虛擬機裡面) 變成全螢幕。
  2. 點選 「線」=>「圓」, 注意 「選取並移動一個物件」 圖示的背景藍已消失, 而左下角的狀態提示則變成 「由圓心與圓上一點或...所定義的圓」, 表示現在已進入繪製圓形的模式。 在畫布上點一下, 移動滑鼠再點一下, 「選取」 圖示的背景又變回藍色; 左下角的狀態提示又變回 「選取並移動物件」。
  3. 點選 「點」=>「點」。 在圓外面點一下, 產生 C。
  4. 點選彩色九宮格圖示, 然後逐一點選剛才創建的每個物件 (三個點及一個圓), 幫每個物件取名字、 改顏色。
  5. 點選 「點」=>「中點」。 點一下 A, 再點一下 C。 把新創建的中點命名為 D。
  6. 點選 「線」=>「圓」。 以 D 為圓心、 A (或 C) 為圓上一點畫圓。 把圓命名為 P。
  7. 點選 「點」=>「交點」。 點一下圓 O, 再點一下圓 P, 產生兩個交點, 命名為 E 跟 F。
  8. 點選 「線」=>「直線」。 建立直線 CE。
  9. 再點一次 「線」=>「直線」。 建立直線 CF。 CE 跟 CF 就是題目所求的切線。

倒數第二步做完之後, 可從左下角看到: 又恢復到 「選取並移動物件」 狀態, 所以必須再點一次 「線」=>「直線」 才可以畫第二條切線。 像這種時候 (想要連續畫同類的點或同類的線), 其實可以先點 「磁鐵」 右邊的 「切換模式」, 然後才點繪圖工具, 這樣就會一直維持在相同的繪圖工具, 直到再點 「選取並移動」 為止才結束連續繪圖模式。

最後點 「檔案」=>「儲存」, 填入 circle-tangent 即可存檔。 從外面的作業系統, 可以進 DrGeo/MySketches/ 子目錄看到相對應的 (xml 格式的) 檔案 circle-tangent.fgeo。 你也可以把 我做的 「過圓外一點做切線」 圖 下載回去放在這個目錄。 下次再進入 Dr. Geo 時, 從系統選單 (system menu) 點 「開啟一個圖稿」, 在 "MySketches" 分頁即可叫出先前所存的圖 (或是下載回來的圖)。 我的圖已把製圖過程隱藏起來, 必須先用彩色九宮格進入編輯模式把 輔助圓 P 跟它的圓心 D 解除隱藏才看得到完整圖形。

作業: 給定平面上兩個圓。 求它們的外公切線。 求它們的內公切線。 提示: 找到某兩個相似三角形的共同頂點即可。

三、 其他補充

想要改成白底黑字, 請看 這一篇。 [8/8 更新: 最新版的 19.09b 修正了一些小問題, 例如: 物件名稱重疊 最後一個存檔選項不能用。 ]

大推 「尺規作圖實例、題解和證明」 超多有趣題目可玩! 裡面包含公切線那兩題的解答。

以 F1 與 F2 為焦點畫一橢圓 舊版教學文 的 「軌跡」 這一篇介紹如何用 「軌跡」 功能繪製拋物線, 大致還算適用於新版, 大推。 看完後可以做一個簡單的作業: 給定兩點 F1 與 F2, 以它們為焦點畫一橢圓。 橢圓上任一點到兩焦點的距離和為 L (線段 F1-Z 的長度)。 參考解答。 我的凹凸透鏡成像, 也是用這個功能做的。 另外, 也可以照著 這一篇英文教學 跟著我一步一步畫出 「重力加速度下的投擲物體拋物線軌跡」。

作者 Hilaire Fernande 不只是數學老師與程式設計師。 因為在法國及瑞士長期投入中學數學教育, 他也很關心各種教學方法理論。 他的部落格對 「翻轉教室」、 「能力本位教學」、 「實境式學習」、 「專題導向學習」、 「做中學」、 「團體學習」、 「興趣式學習法」、 ... 等等 教學模型 也都提出觀點 -- 圍繞著他所大力推薦的 dynabook。 Dynabook 是 Alan Kay 所推廣的觀念, 而它的具體實作就是 smalltalk 程式語言/作業系統。 關於一點歷史與想法, 我那篇 雙眼明人 的文章略有簡介。 這也是為什麼 Hilaire 採用 pharo (smalltalk 的一支) 來撰寫 Dr. Geo。 最近他貼了一篇 「互動圖形理解牛頓求根法」 展示數學 (代數+幾何) 與程式設計如何毫無違和地融和在一起。 Hilaire 是臺灣女婿, 本來每隔幾年都會來一次臺灣; 近年因為身體因素, 來臺意願較低。 不過如果教育界的朋友邀請他來臺灣演講或舉辦 Dr. Geo / Smalltalk / 程式教育融入數學等等相關研習, 我相信他還是會很有興趣的 :-)

家長 & 老師們: 這個暑假一定要讓愛數學、 愛程式的孩子們玩到這一套益智玩具!

3 則留言:

  1. 在ubuntu 18.04上執行,沒辦法正常顯示中文,只能看到 mini icon ... 有點困擾,我懷疑是 gnome 3 ,因爲 gnome 3 真的給我出太多問題了...
    圖:
    https://imgur.com/KfmzAcc

    回覆刪除
    回覆
    1. 自問自答
      1. 看完readme後,依據指示,安裝32bit的lib,讓64bit的系統可以執行。
      2. 修改檔案管理員設定,允許 *.sh 點兩下直接執行,而不是視爲文字檔。

      刪除
    2. 啊, 謝謝提醒! 已在正文加入連結。 (因為我去年就已經處理過 32bit 的問題, 所以寫這篇時完全忘記這件事~~) 我從沒遇到無法顯示中文的問題。 希望安裝了 32bit 相關套件後,已經解決了?

      刪除

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。