网页版几何画板开发笔记(十二) 关于绘图检查的思考

学生绘图之后, 对所绘制的图形进行检查, 是一项关键性的任务.

此任务要求"发明"一种描述语言, 将教师绘图要求翻译转换为一种计算机可识别, 可实现的
代码, 对图形的绘制步骤及或绘制结果进行检查. 同时也要求这种语言教师容易使用.

故而要求有:
  1. 能够对绘制步骤, and/or 绘制结果进行检查.
  2. 教师容易学习和使用.
  3. 技术上可实现的, 且不应太复杂.

对绘制步骤的检测, 可能存在顺序性(因此需要代词指代...);
对绘制结果的检测, 可能不需要这种指代(将几何约束翻译为共线,相交等要求)
也可能步骤,结果有所结合? 那如何结合, 是否有结合有待考察.

教师容易学习使用也比较重要, 但是考虑到实现简单性, 可能需要某种折中.

初步考虑是类似于 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.

从过程检查和从结果检查是略有不同的检查思路, 在使用的时候, 教师可能需要区分选择,
并确定使用何种方法, 或混合使用, 哪种比较好.

问题1: 代词问题. (相当于变量)
问题2: 组合问题. (为达到某结果可能有多个组合路径, 产生组合爆炸)
  对组合式路径如何描述?? 而且一旦组合爆炸, 则可能无法描述?

你可能感兴趣的:(网页版几何画板开发笔记(十二) 关于绘图检查的思考)