物理运动学实验的动态几何虚拟方法 【技术领域】
本发明属于教学自动化技术领域, 特别是涉及一种物理运动学实验的动态几何虚拟方法。 背景技术 当前交互式电子白板已逐步应用于现代化的课堂教学环境, 它不同于传统课堂的 黑板, 具有交互式强、 支持随手绘图、 易编辑等特征。交互式电子白板可以与电脑进行信息 通讯, 将电子白板连接到 PC, 并利用投影机将 PC 上的内容投影到电子白板屏幕上, 在专门 的应用程序的支持下, 可以构造一个大屏幕、 交互式的协作会议或教学环境。 利用特定的压 力笔代替鼠标在白板上进行操作, 可以运行任何应用程序, 可以对文件进行编辑、 注释、 保 存等在计算机上利用键盘及鼠标可以实现的任何操作。
目前, 电子白板在教学中通常用于制作和保存非实时课件, 即将绘制信息转换为 图像进行存储, 再采用 Flash、 Authorware 等工具完成课件编辑。因此, 课件制作较为耗时 ; 其次, 该类课件尚不具备个性化定制特征, 尽管能够通过一些组件进行交互, 但课件不容易 进行修改和编辑 ; 再者, 这类课件普遍采用帧间或补间动画方式, 其实质需要存储大量的图 片信息, 因此, 课件数据量较大。尤其是物理运动学实验的教学课件, 由于各图形代表的物 体之间存在物理运动关系, 为了准确表现运动状态变换, 绘制更加复杂。
发明内容
本发明目的在于针对以上不足, 提出一种物理运动学实验的动态几何虚拟方法。
本发明的技术方案包括图形识别过程、 关系识别过程和课件生成过程,
所述图形识别过程包括以下步骤,
笔划输入, 即跟踪并记录用户所绘笔划的手绘数据坐标信息 ;
笔划识别, 即根据手绘数据坐标信息进行基本笔划识别 ;
笔划整合, 即将一个或以上基本笔划整合成为几何图形 ;
图形输出, 即完成几何图形在显示屏幕上的即时输出 ;
所述关系识别过程, 是对图形识别过程所识别出的几何图形进行物理运动关系识 别, 得到物理运动关系识别结果 ;
所述课件生成过程, 将几何图形的图形参数及相应物理运动关系识别结果保存为 基于动态几何的动漫课件。
而且, 所述基本笔划包括直线、 折线、 圆、 椭圆和圆弧 ; 笔划识别通过根据用户所绘 笔划的手绘数据坐标信息进行判断实现, 首先判断该笔划是否为直线 ; 若该笔划不是直线, 判断该笔划是否为圆或椭圆 ; 若该笔划不是圆或椭圆, 判断该笔划是否为折线或是圆弧。
而且, 笔划整合时按照笔划输入顺序进行整合, 即对第一条笔划进行单笔划整合, 对后续笔划都和之前的各笔划分别进行多笔划整合 ; 当通过整合发现当前笔划和之前笔划 构成几何图形时, 将接续笔划作为新几何图形的第一条笔划开始新一轮的整合。而且, 所述物理运动关系识别包括运动对象与静止对象识别, 即当某几何图形内 出现特定几何图形 “X” 时, 识别出该几何图形代表的是静止对象 ; 当某几何图形内未出现 特定几何图形 “X” 时, 识别出该几何图形代表的是运动对象。
而且, 所述物理运动关系识别包括多图形运动一致性识别, 即当图形识别得到一 个以上几何图形时, 判断具有相交关系的几何图形的运动一致。
而且, 物理运动关系识别包括运动方向识别, 即某几何图形内部或其相交图形出 现特定几何图形 “→” 时, 识别出该几何图形朝箭头方向运动。
本发明提供的技术方案支持实时手绘图形的输入, 自动生成实时课件, 符合教师 的传统教学模式和习惯, 在不影响课堂教学的同时完成虚拟实验课件的存储。 并且, 通过采 用图形识别和动态几何方法, 将教师手绘图像转化为图形方式, 生成的课件仅需存储图形 参数和运动信息, 因此课件更为简洁, 而且易于再编辑。 本发明应用可以提供物理课堂教学 的新模式, 实现理论教学与实验教学的结合。 附图说明
图 1 为本发明的图形识别过程示意图 ;
图 2 为实施例的物理运动关系示意图。具体实施方式
本发明利用交互式电子白板技术, 正确理解教师的绘制意图, 给出教师需要的几 何图形, 在此基础上虚拟仿真物理运动场景, 使学生直观地理解物理运动学运动规律。本 发明实施时, 用户使用电子白板中的压力笔作为手绘设备, 实现手绘数据输入端, 输入后在 与电子白板连接的计算机上通过软件技术实现自动处理过程 : 通过图形识别过程可以实 现点、 直线、 圆、 椭圆、 圆弧、 折线、 三角形、 四边形 ( 正方形、 长方形、 梯形、 菱形 )、 五边形等 多边形以及由以上图形组合而成的图形等的识别, 以提取参与虚拟实验的诸多基本图形对 象; 关系识别过程主要完成运动对象与静止对象的区分、 不同运动单元的运动协调、 运动方 向的指定、 运动参量的获取等 ; 通过课件生成过程存储当前实验所含几何图形的图形参数 及相应物理运动关系识别结果保存为基于动态几何的动漫课件。 以下结合实施例和附图详 细说明本发明技术方案 :
( 一 ) 图形识别过程
参见图 1, 图形识别的基本流程包括 : 笔划输入——跟踪并记录用户所绘笔划的手 绘数据坐标信息 ; 笔划识别——根据手绘数据坐标信息进行基本笔划识别 ; 笔划整合—— 将一个或以上基本笔划整合成为几何图形 ; 图形输出——完成几何图形在显示屏幕上的即 时输出。笔划输入过程中, 只需由电子白板连接的计算机跟踪和存储用户所绘笔划的手绘 数据坐标信息即可, 本发明不予赘述。
(1) 笔划识别
本发明将常规几何图形分解为由一些基本笔划构成。在正确识别各基本笔划之 后, 再予以规划整合就完成了对图形的识别。 针对物理实验的需求, 本发明提供进一步技术 方案, 定义了五种基本笔划, 分别是直线、 折线、 圆、 椭圆、 圆弧, 笔划识别通过根据用户所绘 笔划的手绘数据坐标信息进行判断实现, 步骤如下。步骤 1 : 判断该笔划是否为直线
实施例中, 该步骤记录每一笔划的起点和终点 ; 计算起点和终点所构直线的欧式 距离, 记为直线距离 d ; 再计算从起点到终点, 邻点间的累积距离和, 记为 r。 比较两种距离, 若 d 与 r 大小接近, 则认为是直线 ; 否则, 进行步骤 2。
步骤 2 : 判断该笔划是否为圆或椭圆。
依次判断以下两个基本条件 :
条件 1 : 根据圆的归一化行径值集中在单位值 1 附近这一特征 ( 区别与其他类基 本图形 ), 判断是属于圆。
●归一化行径法描述如下 :
定义 1 : 形 心。 设 输 入 笔 划 点 序 列 为 p = {pi|i = 0, 1...., n-1}, 则称坐标 为笔划的形心。
定义 2 : 形径。设 pc 为形心, 则称 r = {ri = |pi-pc||i = 0, 1...., n-1} 为笔划的 定 义 3 :归 一 化 形 径。 设 形 径 的 算 术 平 均 值 为 mr, 则 称 为笔划的归一化形径。形径。
条件 2 : 用判别直线的方法比较从笔划起点到终点的直线距离和累积距离和的比值。 若 条 件 1 在 阈 值 ω1( 根 据 测 试 实 验 结 果, 建 议 该 阈 值 的 取 值 范 围 为 ω1 > 0.8*len, len 表示笔划采样点个数 ) 范围内并且条件 2 在阈值 ω2( 根据测试实验结果, 建 议该阈值的取值范围为 0 < ω2 < 0.7) 范围内, 就判定该笔划是圆或椭圆 ; 否则进行步骤 3 判断。若条件设为是 ω1 > 0.8*len&&ω2 < 0.7, 就是 ω1 < 0.8*len||ω2 > 0.7 时进行 步骤 3。
条件 3 : 经以上判断若该笔划为圆或椭圆, 则遍历记录笔划的每个点, 以找出最大 横坐标、 最大纵坐标、 最小横坐标和最小纵坐标, 由这四个数据得到圆的宽和高, 再拿两者 作比值, 若比值与单位值 1 接近, 就认为该笔划是圆 ; 若比值与单位值相差较大就认为该笔 划是椭圆。
步骤 3 : 判断该笔划是否为折线或是圆弧
经过上述步骤 2 对于 “圆” 的相关判断, 已经知道该笔划不是正圆也不是椭圆, 那 么该笔划就可能是折线或圆弧。 由圆弧和折线的特点可知, 圆弧方向变化缓慢, 折线在拐点 处方向会突然发生大的改变。故区分两者的依据采用的是 : 拐点。找笔划的拐点又要用到 两个数据 : 曲率和平均速率。
定义 4 : 曲率
设当前点与前一点构成一个向量是 a, 当前点与下一点构成的向量是 b, a与b的 向量积近似为当前点的曲率。
定义 5 : 平均速率
对特定的计算机来说, 设备的采样时间是固定不变的, 那么距离的大小就反映了 速率的大小。求得从笔划起点到终点邻点距离的累积和, 再除以点数就是平均速率。
对于一个点, 若该点的速率小于平均速率并且曲率是所有点中最大的, 就认为该 点是拐点。
取得拐点之后, 下一步要做的是 : 用判别直线的方法比较从笔划起点到拐点的直 线距离和累积距离和的比值, 若比值在阈值 ω3( 根据测试实验结果, 建议该阈值的取值范 围为阈值 0 < ω3 < 3) 范围内就是折线, 否则就是圆弧。
具体实施时, 也可采用其它基本笔划定义识别, 例如仅仅识别直线、 折线、 圆, 而不 识别椭圆和圆弧, 这样处理效率较高, 但精确性低于上述方式。
(2) 笔划整合
为了实现高效笔划整合, 本发明提出进一步技术方案, 结合单笔划整合和多笔划 整合得到整合后的合成图形 : 针对 (1) 得到的基本笔划, 笔划整合时按照笔划输入顺序进 行整合, 即对第一条笔划进行单笔划整合, 对后续笔划都和之前的各笔划分别进行多笔划 整合 ; 当通过整合发现当前笔划和之前笔划构成几何图形时, 将接续笔划作为新几何图形 的第一条笔划开始新一轮的整合。这种整合方案支持一个几何图形中笔划输入相连的情 况, 画四边形时先画相对两边的这类不相连情况则不支持, 因此要求用户输入笔划时要操 作规范。整合操作指的是保证邻接两条笔划无缝隙的连接在一起, 基本是处理多边形在绘 制过程中存在端点扩散的问题。因为手画的笔划不可能完全水平或垂直, 本发明具体实施 时可以配合规整操作。规整操作指的是保证笔划是水平或垂直, 可以是两条笔划之间的垂 直规整, 也可以是单笔划整合中单条笔划与 X 轴或 Y 轴垂直规整。通常多笔划整合中, 若两 条笔划具有邻接关系, 就判断两条笔划是不是相互垂直, 是的话先规整后整合, 不是的话只 整合 ; 若两条笔划不具有邻接关系, 不做任何处理。 实施例中, 整合流程如下 :
a. 首先, 用户在空白客户区画出第一条笔划, 该笔划被存储到笔划链表中, 存储到 链表中的是该笔划的起点和终点坐标, 其他几何特征可由这两点计算推导出, 之后判断这 条笔划是否近似水平或垂直, 若近似水平或垂直的话进行笔划规整。对于第一条笔划的判 断和规整称为是单笔划整合, 单笔划整合的处理对象主要是直线和折线。
●直线
假设直线的端点坐标是 (x1, y1) 和 (x2, y2), 若 (x1-x2) < ω4, 则认为直线平行于 Y 轴 ( 即垂直于 X 轴 ), 实现规整。根据测试实验结果, 建议该阈值的取值为 ω4 = 10
x′ 1 = x1+(x2-x1)/2
x′ 2 = x2+(x1-x2)/2
平行于 X 轴 ( 即垂直于 Y 轴 ) 的情况同理。
除上之外, 其他情况不作处理, 保留原始坐标信息。
●折线
折线的处理分解成对起点到拐点 ( 线 1) 和拐点到终点 ( 线 2) 两个直线的处理, 处理方法同上。
b. 接着用户在客户区又画下第二条笔划, 同样该笔划被存储到笔划链表中。 此时, 判断该笔划与前一笔划之间的关系, 这里的关系指的是两条笔划是不是邻接, 有可能用来 构成一个几何图形。邻接包括重合和非常接近两种情况。若两条笔划具有邻接关系, 就判 断两条笔划是否相互垂直, 是的话, 做垂直规整及整合处理, 不是的话, 只做整合处理。 相邻
接的两条笔划未必构成完整的几何图形, 可能需要后续笔划加入才能构成, 因此对第一条 笔划和第二条笔划整合后进入步骤 c。 如果两条笔划不具有邻接关系, 就直接进行下一步骤 c 继续整合。
五种笔划中, 圆和椭圆是封闭曲线, 故不予考虑。圆弧虽不是封闭的, 但考虑到在 物理运动学实验中用到的情况不多, 故暂不考虑。当前笔划与前一笔划的规整和整合中重 点要考虑的是直线与直线、 直线与折线、 折线与直线、 折线与折线的端点融合。这四种情况 做的是同一件事, 即若相邻 ( 此处的相邻是指在时间上的先后顺序 ) 两笔划的端点位置很 接近, 说明两端点应是同一个点, 作融合操作。 相邻两笔划的端点位置关系细分为以下四种 情况 : ①当前笔划的起点与前一笔划的起点。②当前笔划的起点与前一笔划的终点。③当 前笔划的终点与前一笔划的起点。④当前笔划的终点与前一笔划的终点。这四种情况的实 质都是两个坐标点的关系。
●判断端点位置接近的方法
假设两端点分别是 (x1, y1)、 (x2, y2), 那么两点的欧式距离 :
若 d < ω5, 则认为两端点位置接近, 应属于同一点。 根据测试实验结果, 建议该阈 值的取值为 ω5 = 20。
●融合操作的具体实现方法
假设当前笔划的端点坐标是 (x1, y1) 和 (x2, y2), 前一笔划的端点坐标是 (x′ 1, y′ 1) 和 (x′ 2, y′ 2), 若两起点坐标位置接近, 则更新当前笔划的端点坐标为 :
x2 = x2+(x1-x′ 1)
y2 = y2+(y1-y′ 1)
x1 = x′ 1
y1 = y′ 1
按照新的端点坐标绘制当前笔划, 显示效果就是相邻两笔划是连接在一起的。其 他情况做相同处理。
c. 用户在客户区继续画下第三条笔划并被存储后, 判断该笔划分别与笔划链表中 其之前的每一条笔划之间的关系。
如果发现当前第三条笔划与前一笔划以及第一条笔划满足一定的阈值关系 ( 这 个阈值是指两条笔划端点之间的欧式距离, 记为阈值 ω6), 就认为包括当前笔划在内的之 前所有笔划可能共同构成一个完整图形, 进入步骤 d。
如果第三条笔划与前一笔划以及第一条笔划不满足一定的阈值关系, 而步骤 b 中 判断第一、 二条笔划具有邻接关系时, 认定第三条笔划为新几何图形的第一条笔划, 提取之 前两条笔划所构成几何图形的关键几何特征, 并作为图形参数保存, 返回步骤 a。
如果第三条笔划与前一笔划以及第一条笔划不满足一定的阈值关系, 而步骤 b 中 判断第一、 二条笔划不具有邻接关系时, 需要直接进入步骤 d 继续整合。
d. 一般基本的几何图形超过三笔的可能性很少, 但也存在由四笔或以上构成的可 能性。对四条或以上笔划的多笔划整合操作按照步骤 c 对第三条笔划的处理依次类推。
如果发现当前第四条笔划与之前笔划满足一定的阈值关系, 就认为包括当前笔划 在内的之前所有笔划可能共同构成一个完整图形, 根据第五条笔划判断是否从第五条开始
新的几何图形。
如果当前第四条笔划与之前笔划不满足一定的阈值关系, 而步骤 c 中判断第三条 笔划与前一笔划以及第一条笔划满足一定的阈值关系时, 认定第四条笔划为新几何图形的 第一条笔划, 提取之前三条笔划所构成几何图形的关键几何特征, 并作为图形参数保存, 返 回步骤 a。
更多笔划的情况依次类推, 本发明不予赘述。直到识别出一个几何图形后返回步 骤 a 循环执行, 对下一个几何图形识别。这样就可以把用户教师输入的实验对象一一识别 出来。基于物理运动学实验的一般情况, 具体实施时无需穷举不相邻笔划间的一切可能存 在的位置关系, 而是就最常用的位置关系情况给出判断, 即第一条笔划、 最后一条笔划、 最 后一条笔划前的笔划这三者的关系。 因为它们的关系信息可以用于确定哪些笔划同属于一 图形, 哪些笔划不属于任何图形, 对本发明中物理运动学运动仿真的实现具有重要的作用。 例如画下第四条笔划时, 判断第一条、 第二条、 第四条笔划两两之间的关系。
这三条笔划的位置关系包括 : ①当前笔划的起点与第一笔划的终点, 当前笔划的 终点与前一笔划的终点。②当前笔划的起点与第一笔划的起点, 当前笔划的终点与前一笔 划的终点。③当前笔划的起点与第一笔划的终点, 当前笔划的终点与前一笔划的起点。④ 当前笔划的起点与第一笔划的起点, 当前笔划的终点与前一笔划的起点。这四种情况的实 质都是两对坐标点的关系, 根据各对坐标点是否重合即可确定笔划位置。 这一部分的具体实现, 举例说明如下 :
假设第一笔划的端点坐标是 (x, y) 和 (x′, y′ ), 当前笔划的端点坐标是 (x1, y1) 和 (x2, y2), 当前笔划的前一笔划的端点坐标是 (x′ 1, y′ 1) 和 (x′ 2, y′ 2), 若三笔划的 端点位置关系符合情况①, 当前笔划的起点与第一笔划的终点重合, 当前笔划的终点与前 一笔划的终点重合。则实现过程如下 :
若 d1 < ω6&&d2 < ω6, 则: x1 = x′ y1 = y′ x2 = x′ 2 y2 = y′ 2根据测试实验结果, 建议取 ω6 = 57。
特殊的是, 这种情况在第二条笔划或第三条笔划时可能出现, 具体实施时可以配 合后续笔划与之前相邻笔划是否相邻进行判断, 如果是相邻, 则之前相邻笔划尚未构成几 何图形, 还要进行后续步骤。如果不是相邻不能继续整合, 则之前相邻笔划构成几何图形, 该后续笔划是新几何图形的第一笔。
(3) 图形输出
图形输出是为了支持边 “画” 边显示, 通过即时显示笔划整合后的图形结果, 便于 用户了解自己手绘的结果。具体实施时, 可以利用 VC 的标准库 MFC 中设备环境类的成员函 数实现显示, 显示仍以基本笔划为单位进行, 显示实现过程分别如下 :
●直线使用函数 LineTo() 和 MoveTo(), 通过 MoveTo() 将当前作图位置移到参数位置, 通 过 LineTo()MoveTo() 的参数位置向 LineTo() 的参数位置画一条直线。
●圆
首先, 确定圆心和半径。确定圆心和半径的方法是 :
把笔划的点序列均分成 3 份, 从每一份中任取一点, 这样就有三个点。确定这三 个点构成的圆的圆心和半径。同理, 遍历点序列, 保证每个点都参与过计算, 就可以得到 一组圆心和半径的值, 再从这组值中确定出笔划的最佳圆心和半径。然后, 由圆心和半径 计算出圆外接矩形的左上点坐标和右下点坐标, 以此为参数, 调用函数 Ellipse(), 根据 Ellipse() 内的参数画圆。
( 一 ) 由三点确定圆心和半径的方法 :
三点确定三条直线, 三条直线对应三条中垂线, 三条中垂线的交点就是三点所成 圆的圆心。圆心到三点中任一点的距离就是半径。
( 二 ) 由一组圆心和半径值确定最佳的圆心和半径的方法 :
从这组数据中找出出现概率最大的圆心 (cx, cy) 和半径 cr。在 [cx-2, cx-2] 和 [cy-2, cy-2] 范围内计算圆心与笔划上每一点的距离, 再与 [cr-2, cr-2] 范围内对应半径 求差值, 并计算累积和。差值大表示当前圆心和半径与真实值接近程度低, 反之则高。差值 和最小时对应的 cx, cy 和 cr 值就是最佳圆心和半径值。
●椭圆
和画圆采用同样的函数 Ellipse(), 根据 Ellipse() 内的参数画椭圆。 不同之处在 于, 这里需设定四个参数笔划点中的最大横坐标、 最大纵坐标、 最小横坐标和最小纵坐标。
●折线
被识别为折线后, 两次调用画直线的函数 LineTo() 和 MoveTo() 即可。第一次, 从 起点到拐点, 第二次, 从拐点到终点。
●圆弧
调用函数 Arc()。第二个和第三个参数分别是圆弧的起点和终点。第一个参数是 圆弧所在圆的外接矩形的左上点坐标和右下点坐标。 求解方法是 : 把圆弧作为一个圆对待, 按照画圆时求取圆心和半径的方法获得所在圆的圆心和半径, 再计算圆弧外接矩形的左上 点坐标和右下点坐标。
( 二 ) 关系识别过程
描述物理实验中常见的运动情况, 就要描述物理的运动状态, 运动状态包括运动 方向和运动速度, 以及运动协调性问题等, 这些因素是紧密联系在一起的, 本发明统称为物 理运动关系。其中部份关系在物理实验中有惯用特定几何图形表现, 例如表示图形运动方 向的 “→” 和表示图形动静状态的 “X” , 可称为是手势。运动关系识别包括以下部分 :
(1) 运动对象与静止对象的区分
采用 “X” 符号标记物体处于静止状态, 没有用 “X” 符号标记就认为是运动的。
举例说明 : 比如说用户已经画了四条笔划, 这四条笔划经识别规整以及整合后知 道这是一个矩形, 矩形就是一个完整有意义的几何图形。之后若发现有两个直线相交并且 交点在这个矩形内部, 则认为已指定矩形处于静止状态。
这里又涉及两个问题 :一个是两个直线相交判断和交点计算问题。 另一个是交点是否处于某一图形内部 的问题。图形的关键几何特征在多笔划整合中提取出, 比较这些关键几何特征与交点的位 置关系即可解决这一问题。
●直线与直线
①平行
直线的端点坐标已知, 求得直线的一般方程。据此, 比较两直线的斜率, 若相差很 小, 则两直线平行 ; 否则, 两直线相交。
②相交
若两直线相交, 联立两直线方程求解交点坐标。
(2) 运动协调性问题
如果客户区中存在多个图形, 若不止一个图形是运动的话, 需要保证这几个运动 物体协调一致的运动。本发明采用的方法是判断图形之间是否有相交关系, 若存在相交关 系, 就认为这些图形作为一个整体协调一致做运动。 这些相交可以是直线与直线的相交、 直 线与圆的相交关系和圆与圆的相交关系, 具体方式可以如下 :
●直线与直线, 与识别 “X” 符号时一致 ①平行
直线的端点坐标已知, 求得直线的一般方程。据此, 比较两直线的斜率, 若相差很 小, 则两直线平行 ; 否则, 两直线相交。
②相交
若两直线相交, 联立两直线方程求解交点坐标。
●直线与圆
①相离
圆心到直线的距离为 d, 圆半径为 r, 若 d > r, 则直线与圆相离。
②相切
若 d = r, 则直线与圆相切。
③相交
若 d < r, 则直线与圆相交。
交点求法 : 联立直线方程和圆方程, 求得交点坐标。
●圆与圆
①相离
两圆的半径分别是 r1、 r2, 两圆心之间的距离为 d, 若 d > (r1+r2), 则两圆相离。
②相切
若 d = (r1+r2), 则两圆相切。
③相交
若 d < (r1+r2), 贝两圆相交。
交点求法 :
假设其中一个圆的圆心和半径 (x1, y1)、 r1, 另一个圆的圆心和半径是 (x2, y2)、 r2, 两圆的交点是 (x, y), 联立以下方程求交点 :
(3) 运动方向的指定
运动方向的指定采用 “→” 手势。实施时根据手势的斜率和箭头方向以及图形坐 标位置等综合信息, 判断图形朝箭头方向运动。
(4) 运动参量的获取
对于需要指定运动参量的运动类型, 可以在实验开始前的选择输入, 其他不需要 指定运动参量的实验, 则根据物理运动规律事先确定, 如自由落体的加速度等。
为了更好的理解本发明技术方案和以上三点, 下面详细讲解一个实施例的处理流 程。参见图 2, 小车沿着斜面下滑实验的动态几何虚拟流程是 : 用户输入笔划, 经识别、 规 整、 整合处理后若发现有图形存在, 就在每一个图形之后判断是否有 “X” 手势出现, 有表示 该图形运动状态是静止 ; 若没有 “X ” 手势出现, 就表示图形运动状态是运动, 紧接着就要 判断是否有 “→” 手势, “→” 手势指明了图形的运动方向。
详细处理流程 : 根据物理课堂实际教学情形, 对于这样一个案例, 教师通常会先画 出小车运动的斜面, 然后以此为参考在具体画出小车。 基于这样一种前提, 用户首先画下第 一条笔划 (1), 存储后进行单笔画整合 ; 接着画下第二条笔划 (2), 存储后与前一笔划 (1) 做 多笔划整合 ; 然后又画下第三条笔划 (3), 存储后与第二条笔划 (2)、 再与第一条笔划 (1) 做 多笔划整合 ; 再次画下第四条笔划 (4), 存储后与前一笔划 (3) 进行多笔划整合, 再与除前 一笔划 (3) 之外的其他笔划 (1)、 (2) 做多笔划整合, 此时发现第四条笔划 (4) 与第一条笔 划 (1) 和第三条笔划 (3) 构成一个图形, 记为四边形 1。 把这个图形的关键几何特征提取出 来另作处理, 存储到图形链表中。这之后用户继续画下第五条笔划 (5), 这条笔划将作为新 图形的第一条笔划而不再与前一图形的各条笔划 (1)、 (2)、 (3)、 (4) 做关系比对 ; 又画下第 六条笔划 (6), 发现第六条笔划 (6) 和第五条笔划 (5) 都是直线, 并且两者相交, 交点在表示 斜面的图形之内, 这时认为这两条笔划 (5)、 (6) 表示的是 “X” 符号, 并且 “X” 出现的意义是 表示斜面的图形静止不动。同理, 通过笔划 (7)、 (8)、 (9) 画出表示车厢的矩形, 记为四边 形2; 通过笔划 (10)、 (11) 分别画出表示车轮的两个圆形, 记为圆 1 和圆 2。其中笔划 (8) 为折线, 这体现了同样几何图形, 形成的笔划和顺序都可能不同。之后, 判断图形链表中运 动状态是运动的图形之间是否有相交关系, 若有表示这些图形将来是作为一个整体一起运 动的 ; 若没有, 表示这些图形之间的运动情况不一样, 要分别指定运动方向。 然后, 通过笔划 (12)、 (13)、 (14) 画 “→” 手势指定方向, 进而启动运动。
( 三 ) 课件生成过程
对于用户所绘笔识别所得的若干图形进行保存, 本发明区别于现有动画技术, 并 非直接保存图形, 而是只存储几何图形的图形参数及相应物理运动关系识别结果, 例如图 并 形链表中图形关键几何特征和动静属性及运动参数等。将这些内容存至一输出文件中, 且为了保存图形间的约束关系不变, 本发明保存为基于动态几何的动漫课件。当用户再次 打开这个文件时, 就会调用这些数据在重绘显示出保存时的样子, 选择播放时, 几何图形依
据一定物理规律做运动。
实施例中的物理运动学实验, 动态几何虚拟说明如下 :
场景对象
如图 2 的实施例中, 场景对象是小车和小车运动的斜面。描述这种运动场景可以 只用到四种简单的几何图形, 分别是代表斜面的四边形 1, 代表车厢的四边形 2, 代表车轮 的圆 1 和圆 2。
运动过程
运动的过程是斜面静止不动, 小车 ( 即四边形 2、 圆 1 和圆 2) 沿着斜面做匀加速运 动, 运动到斜面底端后, 小车以此时的速度为初速度开始做自由落体运动。
运动规律
整个运动过程涉及到两种物理运动——匀加速直线运动和自由落体运动, 统可归 结为匀加速直线运动。为了使物理量值具有真正的实用价值, 实施时可以使用物理量的实 际单位度量相关值。
①实现匀加速直线运动
假设物体运动的初速度为 0m/s, 加速度是 10m/s2, 单位时间是 0.1s, 根据物理运动 学公式计算出每次位移的改变量。在运动对象 ( 即小车 ) 原始位置的基础上加上这个位移 量, 定时刷新, 就实现了动态效果。 ②保证物理量值的真实性
按国际单位计算出的位移改变量符合了实际情况, 但物体依据这个数据做运动, 运行效果却并不是真实的。因为计算机会把这些数据认为是像素点的个数, 在原位置的基 础上移动相应个数的像素单位。解决这个矛盾的方法是把位移值映射成像素点个数。就是 获取用户所用计算机的分辨率和显示器尺寸, 计算用户机的一个像素点占据的空间长度。 那么, 每次运动对象要移动的像素数是 : 位移改变量 / 单位像素占据的空间长度。 一般现有 电子白板都是可以自动检测到计算机的分辨率, 所以可以自动调整电子白板的分辨率与计 算机 PC 机的分辨率相匹配, 无需特别处理。
具体实施时, 还可以对其它物理运动学实验进行动态几何虚拟, 例如用小球在窗 口内弹跳展示自由落体运动, 场景对象可以只用一个圆描述小球, 运动过程是小球从起始 2 位置以初速度 0m/s 开始向下做匀加速运动, 加速度是 10m/s , 单位时间是 0.1s, 当运动到 窗口底端时运动方向发生改变, 变为原方向的反方向, 开始向上做匀减速运动, 当运动到最 高点速度变为 0m/s 时, 又改变方向向下做匀加速运动, 如此反复, 直到小球的速度为 0。运 动规律的实现类似于上述 “匀加速直线运动” 。又如用两小球弹性碰撞展示动量守恒定律, 场景对象只需用两个圆分别表示小球, 运动过程是运动开始前, 先设置两个运动对象的相 关物理量值, 有质量、 初速度、 加速度。设置完毕后, 单击 “确定” 两圆开始按照动量守恒定 律运动。 即两圆相向做匀加速运动, 当两圆发生了碰撞后, 同时改变运动方向为原方向的反 方向, 继续做匀加速运动。运动规律的实现类似于上述 “匀加速直线运动” 。可见, 本发明适 用于各种物理运动学实验的动态几何虚拟, 足以满足中学物理学课堂的教学需要。