APP下载

电子课业手写批注系统的实现

2013-10-15董险峰

吉林大学学报(信息科学版) 2013年5期
关键词:窗体留痕笔迹

邹 溪, 董险峰

(吉林大学 数学学院, 长春 130012)

0 引 言

教学网络经过几年的快速发展和完善[1], 已形成开放式的多媒体教学平台[2]。在这些平台中, 大多数解决的是网络教学问题, 而远程作业提交和批注的系统却很少。笔者设计的电子课业手写批注系统就是用书写板、 手写屏等手写指点设备对其格式兼容的电子报告、 作业进行标注的系统。

该系统不仅填补了网络教学中远程作业批改的空白, 而且不失传统纸质批改“见字如面”的亲切感。同时也为当今社会倡导的低碳办学提供了可贵的尝试。

1 技术路线

在电子课业手写批注系统中, 标注是指使用手写指点设备对文档的圈阅、 标记、 附注和涂抹等处理的过程。其中手写指点设备包括书写板、 手写屏、 鼠标和轨迹球等计算机外部设备。

首先, 用RTF(Rich Text Format)控件以富文本格式的方式打开Word文档, 同时把Word的原文档显示在窗体中。

然后, 将Windows消息的处理方法拦截, 并处理手写指点设备等消息, 用API(Application Programming Interface)函数自定义坐标系, 在RichTextBox场景[3]上批注, 保存在辅助文件中。

当再次打开此文档时, 读取这些信息, 绘制出批注笔迹; 同时显示批注笔迹的详细信息(批注人、 时间等)。系统流程如图1所示。

图1 系统流程图

2 关键技术

2.1 富文本的创建

运用富文本格式(RTF: Rich Text Format)打开(或创建)包含图片、 表格、 数学公式的文档。RTF是由微软公司开发的跨平台文档格式[4], 有很好的兼容性, 是通用的文件格式。

其基本元素由正文(Text)、 控制字(Control Word)、 控制符号(Control Symbol)和群组(Group)组成。

控制字是一种特定格式的命令, RTF用它作为正文格式的控制代码, 是以反斜杠()开头的小写字母序列, 以定界符标志一个RTF控制字的结束。

控制符号由反斜杠后跟一个单独的非字母的字符表示一个特定的符号。

群组是大括号({})括起来的正文和控制字或控制符号组成。每个群组描述了由其修饰的正文和正文的各种属性。

在此基础上, 分离RTF控制字与正文、 分析RTF控制字语法、 翻译控制字语义, 从而实现RTF阅读器的主要功能。

该系统同时打开两个窗体(见图2)。图2a是RTF文本窗体, 用于手写留痕批注; 图2b是DOC文本窗体, 可依据左侧的批注内容编辑原始文本。

a RTF文本窗体 b DOC文本窗体

2.2 消息的截获与处理

由于Windows是事件驱动的机制, 整个系统通过消息传递实现。其中有一个非常重要的系统接口----钩子(Hook)[5], 它可拦截、 处理传送给其他应用程序的消息, 实现普通应用程序无法完成的功能。

钩子可监视系统或进程中的各种事件消息, 截获发往目标窗口的消息并进行处理。笔者在该系统中安装了自定义的钩子, 监视键盘、 鼠标和滚动条等。

当窗体发生缩放、 滚动时, 都将触发窗体的重绘事件[6]。

1) Paint事件: 在一个窗体被移动或放大后或在一个覆盖该对象的窗体被移开后, 该窗体部分或全部暴露时, Paint事件发生, 窗体的AutoRedraw属性被设置为True, 系统重绘。

2) Resize事件: 当窗体第1次显示或窗体的状态改变时, 触发Resize事件, 如对窗体进行最大化、 最小化、 还原、 被鼠标拖动进行放大、 缩小操作。

3) 键盘事件: 在窗体上操作键盘时, 将会触发KeyDown、 KeyUp、 KeyPress等键盘相关事件。

4) 鼠标事件: 在窗体上移动鼠标时, 将触发MouseMove事件, 按下鼠标时将触发MouseDown事件, 松开鼠标时, 将触发MouseUp事件。

依据这些消息, 批注层留痕也需要被重绘。

2.3 文本与批注的叠加

将创建的富文本称为文本层(或底层); 同时定义(多个)透明的图层, 称为批注层。

手写批注是在批注层上的反馈式书写运动, 利用手写输入设备(如wacom Intuos3手写板, 采样频率为200点/s), 可以全程采集手写批注过程中的x,y,t等信息。

但意外断笔等因素会导致手写批注在空间和时间上存在一定的漂移和形变, 系统有效地利用了手写批注的时序连续性和局部相关性[7], 实现批注笔画的流畅[8]。

系统运用API函数将文本层和(多层)批注层建立在同一坐标系内, 沿Z轴方向将它们逻辑叠加。当文本层移动、 滚动和缩放时, 批注层与其联动, 步调一致, 便形成了留痕效果(见图3)。

图3 文本层与批注层

2.4 批注笔画的重绘与存储

在窗体的大小和位置改变时, 系统需要重绘窗体上的批注留痕(见图4)。

图4 窗体的缩放与滚动

手写批注是由笔画的集合组成的, 对每一笔画都有其各自的属性。按照笔画原本的属性存储笔画也是保证笔画被完整再次重绘的前提。

批注笔画可看成是一条条的直线和曲线, 每个点并不是绝对随机分布的, 而是在一定范围内有一定走势, 用标量表示位置, 用矢量表示方向。这种特征决定了其重绘方法和存储结构, 即矢量图形。它与位图图形不同, 与分辨率无关, 缩放到任意尺寸, 既不丢失细节, 又不降低清晰度。

这样, 窗体缩放到不同大小时, 批注笔画的形状、 大小和位置等属性也随之改变, 但都不会影响批注笔画的整体结构。所以, 矢量方式成为批注笔画重绘与存储的最佳选择。

3 系统功能设计

3.1 批注功能

1) 建立笔的特征: 可选择笔的类型, 笔的宽度, 笔的颜色等, 并可把笔的特征值存入文件。

2) 手写批注: 这是系统中最主要的部分。系统在消息监视、 处理和绘制批注笔迹等动作的支持下, 从手写指点设备接受批注信息, 并将批注留痕信息存于辅助文件中。

3) 结束批注: 确定不再监视系统消息。

4) 批注保存: 保存批注的各种信息。

3.2 监视功能

1) 监视鼠标消息: 包括鼠标的按下、 移动和抬起等。在按下的动作中, 判断鼠标的位置是否在批注区域内, 若在, 设置自定义坐标系统原点; 若不在, 继续监视; 在鼠标移动的过程中, 首先判断鼠标是否在批注区域内, 根据结果改变鼠标的形状, 然后绘制出批注笔迹, 并把批注的各种信息保存于辅助文件中, 以供显示批注时使用; 在鼠标抬起的过程中, 设置标志表明一个批注的结束和另一个批注的开始。

2) 监视滚动条消息: 当有滚动条的消息发生时, 首先通过自定义的API函数得到Thumb的位置, 然后设置自定义坐标系统的原点, 最后刷新并重新显示批注留痕。

3) 监视键盘消息: 监视键盘各键的状态, 设置是否批注的标志。

3.3 显示功能

1) 判断是否有批注笔迹: 如果有批注笔迹, 利用File System Object和API函数绘制出批注笔迹, 建立批注区域, 显示批注笔迹和批注的详细信息(批注人和批注日期)。在此过程中用到的函数有: MoveToEx(移动坐标原点到指定的点), LineTo(在两点之间画线), DptoLp(设备坐标到逻辑坐标的转化)和SetViewportOrgEx(自定义坐标系统)等。

2) 批注显示: 可根据批注人的权限, 选择全部(或部分)批注层, 或指定人的批注留痕。

3) 显示批注的详细信息: 利用自制的VB(Visual Basic)控件显示批注人和批注日期。

3.4 编辑功能

1) 识别身份: 确认批注人的身份及权限, 确保系统的安全。

2) 新建文档: 调用Word的新建对话框建立新的Word文档。

3) 打开文档: 调用Word的打开对话框打开一个已经存在的文档, 为批注做准备。

4) 编辑原文档: 可对照批注笔迹修改原文档, 修改后调用Word的另存为对话框保存原文件, 最后可删除批注的所有信息。

3.5 技术参数

该系统经对350人次学生的电子作业进行批注, 取得了很好效果, 在确保流畅显示的基础上, 形成以下指标:

1) A4满版手写批注, 平均948 kByte/页, 可进一步压缩;

2) 最大打开页数20页(A4幅面);

3) 最大批注层数量6层。

所描述的极限参数都在intel E5200、 1 GByte RAM、 Windows XP环境中得到, 不同机型配置有所不同。

4 结 语

该系统在远程作业批改和电子稿件评审中得到了很好的应用, 对于教师, 改善或替代了传统纸质方式的批改。该系统可作为电子课业手写批注的公共平台, 具有很好的教学效果和推广价值。与此同时, 该系统在政府机关, 可用于电子政务的公文扭转[9]; 在工商企业, 可用于电子商务的信息交流; 在卫生医疗, 可用于电子病案[10]的真迹保留。未来还可引入云存储系统[11], 通过网络提供给用户动态资源, 得到授权的用户可浏览使用这些资源, 实现资源共享。

参考文献:

[1]董险峰, 宋廷贵. 实验教学网络的管理与安全 [J]. 实验室研究与探索, 2007, 26(7): 40-42.

DONG Xian-feng, SONG Ting-gui. Management and Security of Experimental Education Network [J]. Research and Exploration in Laboratory, 2007, 26(7): 40-42.

[2]潘巧明, 任清褒, 胡伟俭. 地方性高校开放实验室个性化服务的调研----以计算机基础实验室开放建设为例 [J]. 实验室研究与探索, 2010, 29(5): 79-83.

PAN Qiao-ming, REN Qing-bao, HU Wei-jian. Study on Individual Service of Local College Lab-Opening [J]. Research and Exploration in Laboratory, 2010, 29(5): 79-83.

[3]高春艳, 刘彬彬, 王斌. Visual Basic开发技术大全 [M]. 北京: 人民邮电出版社, 2007.

GAO Chun-yan, LIU Bin-bin, WANG Bin. Visual Basic Development Techniques [M]. Beijing: Peoples’ Posts & Telecom Press, 2007.

[4]Microsoft Corp. Word 2007: Rich Text Format (RTF) Specification (Version 1.9.1, 2007) [M/OL]. [2010-11-11]. http://download.microsoft.com/download/2/f/5/2f599e18-07ee-4ec5-a1e7-f4e6a9423592/Word2007RTFSpec9.doc.

[5]潘景新. VB编程中使用钩子技术实现程序窗口监控 [J]. 计算机与现代化, 2009(10): 141-143.

PAN Jing-xin. Realization of Program Windows Monitor by Hook Technology in VB Program [J]. Computer and Modernization, 2009(10): 141-143.

[6]沈炜. Visual Basic编程从基础到实践 [M].陈克忠, 译. 北京: 电子工业出版社, 2008.

SHEN Wei. Visual Basic Programming from the Basic to the Practice [M]. CHEN Ke-zhong Translation. Beijing: Publishing House of Electronics Industry, 2008.

[7]程开东, 董险峰, 马驷良. 基于极角特征匹配的动态签名鉴别算法 [J]. 吉林大学学报: 理学版, 2009, 47(5):1006-1012.

CHENG Kai-dong, DONG Xian-feng, MA Si-liang. Dynamic Signature Verification Algorithm Based on Polar Angle Matching [J]. Journal of Jilin University: Science Edition, 2009, 47(5): 1006-1012.

[8]董险峰, 邢罡, 马驷良. 相连字符的分割算法 [J]. 吉林大学学报: 理学版, 2003, 41(1): 6-11.

DONG Xian-feng, XING Gang, MA Si-liang. Segmenting Method of Connective Digits [J]. Journal of Jilin University: Science Edition, 2003, 41(1): 6-11.

[9]董险峰, 杨华, 谢伟. 网络化办公与电子文件批注 [J]. 现代情报, 2006, 26(11): 207-208.

DONG Xian-feng, YANG Hua, XIE Wei. Notation Network Officeand Electronic File [J]. Journal of Modern Information, 2006, 26(11): 207-208.

[10]董险峰. 医院信息系统的设计与开发 [J]. 现代情报, 2005, 25(1): 85-87.

DONG Xian-feng. Design and Development of Hospital Information System [J]. Journal of Modern Information, 2005, 25(1): 85-87.

[11]王林松, 刘德山, 郭瑾, 等. 公共云安全体系结构设计 [J]. 吉林大学学报: 信息科学版, 2013, 31(2): 165-169.

WANG Lin-song, LIU De-shan, GUO Jin, et al. Design of Public Cloud Security Architecture [J]. Journal of Jilin University: Information Science Edition, 2013, 31(2): 165-169.

猜你喜欢

窗体留痕笔迹
巧克力能否去除桌上的油性笔笔迹
试谈Access 2007数据库在林业档案管理中的应用
基于Qt的多窗体快速并行图形绘制方法研究
笔迹线条主动触觉在笔迹鉴定中的运用
刘孔喜岁月留痕系列作品
笔迹鉴定过程中的心理偏差及其控制
WinCE.net下图形用户界面的开发