學生繪圖以後, 對所繪製的圖形進行檢查, 是一項關鍵性的任務. 函數
此任務要求"發明"一種描述語言, 將教師繪圖要求翻譯轉換爲一種計算機可識別, 可實現的
代碼, 對圖形的繪製步驟及或繪製結果進行檢查. 同時也要求這種語言教師容易使用. 學習
故而要求有:
1. 可以對繪製步驟, and/or 繪製結果進行檢查.
2. 教師容易學習和使用.
3. 技術上可實現的, 且不該太複雜. 翻譯
對繪製步驟的檢測, 可能存在順序性(所以須要代詞指代...);
對繪製結果的檢測, 可能不須要這種指代(將幾何約束翻譯爲共線,相交等要求)
也可能步驟,結果有所結合? 那如何結合, 是否有結合有待考察. 變量
教師容易學習使用也比較重要, 可是考慮到實現簡單性, 可能須要某種折中. cli
初步考慮是相似於 lisp 形式的函數表示. 用某些特殊符號表示變量等. 方法
對繪製結果的檢查(構思):
coll(A, B, C) -- 檢查點 A 在線 B,C 上, 或說點 A,B,C 共線.
para(A,B,C,D) -- 線AB平行於線CD
perp(A,B,C,D) -- 線AB垂直於線CD
cyclic(A,B,C,D) -- A,B,C,D 四點共圓
等等. 技術
對繪製過程的檢查(構思):
c_line(A, B) -- 作直線 AB.
c_seg(A,B) -- 作線段 AB.
c_ray(A,B) -- 作射線 AB.
c_para(X, A, B) -- 過點X 作AB 的平行線
c_para(X, $ab) -- 過點X 作線 $ab 的平行線.
c_foot(I, X, $ab) -- 過點X 作線 $ab 的垂線, 垂足爲 I
c_intpt(I, $a, $b) -- 作線 a,b 的交點 I. lisp
從過程檢查和從結果檢查是略有不一樣的檢查思路, 在使用的時候, 教師可能須要區分選擇,
並肯定使用何種方法, 或混合使用, 哪一種比較好. 計算機
問題1: 代詞問題. (至關於變量)
問題2: 組合問題. (爲達到某結果可能有多個組合路徑, 產生組合爆炸)
對組合式路徑如何描述?? 並且一旦組合爆炸, 則可能沒法描述? 語言