国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

電子課業(yè)手寫批注系統(tǒng)的實現(xiàn)

2013-10-15 06:47:58董險峰
關(guān)鍵詞:窗體留痕筆跡

鄒 溪, 董險峰

(吉林大學(xué) 數(shù)學(xué)學(xué)院, 長春 130012)

0 引 言

教學(xué)網(wǎng)絡(luò)經(jīng)過幾年的快速發(fā)展和完善[1], 已形成開放式的多媒體教學(xué)平臺[2]。在這些平臺中, 大多數(shù)解決的是網(wǎng)絡(luò)教學(xué)問題, 而遠程作業(yè)提交和批注的系統(tǒng)卻很少。筆者設(shè)計的電子課業(yè)手寫批注系統(tǒng)就是用書寫板、 手寫屏等手寫指點設(shè)備對其格式兼容的電子報告、 作業(yè)進行標(biāo)注的系統(tǒng)。

該系統(tǒng)不僅填補了網(wǎng)絡(luò)教學(xué)中遠程作業(yè)批改的空白, 而且不失傳統(tǒng)紙質(zhì)批改“見字如面”的親切感。同時也為當(dāng)今社會倡導(dǎo)的低碳辦學(xué)提供了可貴的嘗試。

1 技術(shù)路線

在電子課業(yè)手寫批注系統(tǒng)中, 標(biāo)注是指使用手寫指點設(shè)備對文檔的圈閱、 標(biāo)記、 附注和涂抹等處理的過程。其中手寫指點設(shè)備包括書寫板、 手寫屏、 鼠標(biāo)和軌跡球等計算機外部設(shè)備。

首先, 用RTF(Rich Text Format)控件以富文本格式的方式打開Word文檔, 同時把Word的原文檔顯示在窗體中。

然后, 將Windows消息的處理方法攔截, 并處理手寫指點設(shè)備等消息, 用API(Application Programming Interface)函數(shù)自定義坐標(biāo)系, 在RichTextBox場景[3]上批注, 保存在輔助文件中。

當(dāng)再次打開此文檔時, 讀取這些信息, 繪制出批注筆跡; 同時顯示批注筆跡的詳細(xì)信息(批注人、 時間等)。系統(tǒng)流程如圖1所示。

圖1 系統(tǒng)流程圖

2 關(guān)鍵技術(shù)

2.1 富文本的創(chuàng)建

運用富文本格式(RTF: Rich Text Format)打開(或創(chuàng)建)包含圖片、 表格、 數(shù)學(xué)公式的文檔。RTF是由微軟公司開發(fā)的跨平臺文檔格式[4], 有很好的兼容性, 是通用的文件格式。

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

控制字是一種特定格式的命令, RTF用它作為正文格式的控制代碼, 是以反斜杠()開頭的小寫字母序列, 以定界符標(biāo)志一個RTF控制字的結(jié)束。

控制符號由反斜杠后跟一個單獨的非字母的字符表示一個特定的符號。

群組是大括號({})括起來的正文和控制字或控制符號組成。每個群組描述了由其修飾的正文和正文的各種屬性。

在此基礎(chǔ)上, 分離RTF控制字與正文、 分析RTF控制字語法、 翻譯控制字語義, 從而實現(xiàn)RTF閱讀器的主要功能。

該系統(tǒng)同時打開兩個窗體(見圖2)。圖2a是RTF文本窗體, 用于手寫留痕批注; 圖2b是DOC文本窗體, 可依據(jù)左側(cè)的批注內(nèi)容編輯原始文本。

a RTF文本窗體 b DOC文本窗體

2.2 消息的截獲與處理

由于Windows是事件驅(qū)動的機制, 整個系統(tǒng)通過消息傳遞實現(xiàn)。其中有一個非常重要的系統(tǒng)接口----鉤子(Hook)[5], 它可攔截、 處理傳送給其他應(yīng)用程序的消息, 實現(xiàn)普通應(yīng)用程序無法完成的功能。

鉤子可監(jiān)視系統(tǒng)或進程中的各種事件消息, 截獲發(fā)往目標(biāo)窗口的消息并進行處理。筆者在該系統(tǒng)中安裝了自定義的鉤子, 監(jiān)視鍵盤、 鼠標(biāo)和滾動條等。

當(dāng)窗體發(fā)生縮放、 滾動時, 都將觸發(fā)窗體的重繪事件[6]。

1) Paint事件: 在一個窗體被移動或放大后或在一個覆蓋該對象的窗體被移開后, 該窗體部分或全部暴露時, Paint事件發(fā)生, 窗體的AutoRedraw屬性被設(shè)置為True, 系統(tǒng)重繪。

2) Resize事件: 當(dāng)窗體第1次顯示或窗體的狀態(tài)改變時, 觸發(fā)Resize事件, 如對窗體進行最大化、 最小化、 還原、 被鼠標(biāo)拖動進行放大、 縮小操作。

3) 鍵盤事件: 在窗體上操作鍵盤時, 將會觸發(fā)KeyDown、 KeyUp、 KeyPress等鍵盤相關(guān)事件。

4) 鼠標(biāo)事件: 在窗體上移動鼠標(biāo)時, 將觸發(fā)MouseMove事件, 按下鼠標(biāo)時將觸發(fā)MouseDown事件, 松開鼠標(biāo)時, 將觸發(fā)MouseUp事件。

依據(jù)這些消息, 批注層留痕也需要被重繪。

2.3 文本與批注的疊加

將創(chuàng)建的富文本稱為文本層(或底層); 同時定義(多個)透明的圖層, 稱為批注層。

手寫批注是在批注層上的反饋式書寫運動, 利用手寫輸入設(shè)備(如wacom Intuos3手寫板, 采樣頻率為200點/s), 可以全程采集手寫批注過程中的x,y,t等信息。

但意外斷筆等因素會導(dǎo)致手寫批注在空間和時間上存在一定的漂移和形變, 系統(tǒng)有效地利用了手寫批注的時序連續(xù)性和局部相關(guān)性[7], 實現(xiàn)批注筆畫的流暢[8]。

系統(tǒng)運用API函數(shù)將文本層和(多層)批注層建立在同一坐標(biāo)系內(nèi), 沿Z軸方向?qū)⑺鼈冞壿嫰B加。當(dāng)文本層移動、 滾動和縮放時, 批注層與其聯(lián)動, 步調(diào)一致, 便形成了留痕效果(見圖3)。

圖3 文本層與批注層

2.4 批注筆畫的重繪與存儲

在窗體的大小和位置改變時, 系統(tǒng)需要重繪窗體上的批注留痕(見圖4)。

圖4 窗體的縮放與滾動

手寫批注是由筆畫的集合組成的, 對每一筆畫都有其各自的屬性。按照筆畫原本的屬性存儲筆畫也是保證筆畫被完整再次重繪的前提。

批注筆畫可看成是一條條的直線和曲線, 每個點并不是絕對隨機分布的, 而是在一定范圍內(nèi)有一定走勢, 用標(biāo)量表示位置, 用矢量表示方向。這種特征決定了其重繪方法和存儲結(jié)構(gòu), 即矢量圖形。它與位圖圖形不同, 與分辨率無關(guān), 縮放到任意尺寸, 既不丟失細(xì)節(jié), 又不降低清晰度。

這樣, 窗體縮放到不同大小時, 批注筆畫的形狀、 大小和位置等屬性也隨之改變, 但都不會影響批注筆畫的整體結(jié)構(gòu)。所以, 矢量方式成為批注筆畫重繪與存儲的最佳選擇。

3 系統(tǒng)功能設(shè)計

3.1 批注功能

1) 建立筆的特征: 可選擇筆的類型, 筆的寬度, 筆的顏色等, 并可把筆的特征值存入文件。

2) 手寫批注: 這是系統(tǒng)中最主要的部分。系統(tǒng)在消息監(jiān)視、 處理和繪制批注筆跡等動作的支持下, 從手寫指點設(shè)備接受批注信息, 并將批注留痕信息存于輔助文件中。

3) 結(jié)束批注: 確定不再監(jiān)視系統(tǒng)消息。

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

3.2 監(jiān)視功能

1) 監(jiān)視鼠標(biāo)消息: 包括鼠標(biāo)的按下、 移動和抬起等。在按下的動作中, 判斷鼠標(biāo)的位置是否在批注區(qū)域內(nèi), 若在, 設(shè)置自定義坐標(biāo)系統(tǒng)原點; 若不在, 繼續(xù)監(jiān)視; 在鼠標(biāo)移動的過程中, 首先判斷鼠標(biāo)是否在批注區(qū)域內(nèi), 根據(jù)結(jié)果改變鼠標(biāo)的形狀, 然后繪制出批注筆跡, 并把批注的各種信息保存于輔助文件中, 以供顯示批注時使用; 在鼠標(biāo)抬起的過程中, 設(shè)置標(biāo)志表明一個批注的結(jié)束和另一個批注的開始。

2) 監(jiān)視滾動條消息: 當(dāng)有滾動條的消息發(fā)生時, 首先通過自定義的API函數(shù)得到Thumb的位置, 然后設(shè)置自定義坐標(biāo)系統(tǒng)的原點, 最后刷新并重新顯示批注留痕。

3) 監(jiān)視鍵盤消息: 監(jiān)視鍵盤各鍵的狀態(tài), 設(shè)置是否批注的標(biāo)志。

3.3 顯示功能

1) 判斷是否有批注筆跡: 如果有批注筆跡, 利用File System Object和API函數(shù)繪制出批注筆跡, 建立批注區(qū)域, 顯示批注筆跡和批注的詳細(xì)信息(批注人和批注日期)。在此過程中用到的函數(shù)有: MoveToEx(移動坐標(biāo)原點到指定的點), LineTo(在兩點之間畫線), DptoLp(設(shè)備坐標(biāo)到邏輯坐標(biāo)的轉(zhuǎn)化)和SetViewportOrgEx(自定義坐標(biāo)系統(tǒng))等。

2) 批注顯示: 可根據(jù)批注人的權(quán)限, 選擇全部(或部分)批注層, 或指定人的批注留痕。

3) 顯示批注的詳細(xì)信息: 利用自制的VB(Visual Basic)控件顯示批注人和批注日期。

3.4 編輯功能

1) 識別身份: 確認(rèn)批注人的身份及權(quán)限, 確保系統(tǒng)的安全。

2) 新建文檔: 調(diào)用Word的新建對話框建立新的Word文檔。

3) 打開文檔: 調(diào)用Word的打開對話框打開一個已經(jīng)存在的文檔, 為批注做準(zhǔn)備。

4) 編輯原文檔: 可對照批注筆跡修改原文檔, 修改后調(diào)用Word的另存為對話框保存原文件, 最后可刪除批注的所有信息。

3.5 技術(shù)參數(shù)

該系統(tǒng)經(jīng)對350人次學(xué)生的電子作業(yè)進行批注, 取得了很好效果, 在確保流暢顯示的基礎(chǔ)上, 形成以下指標(biāo):

1) A4滿版手寫批注, 平均948 kByte/頁, 可進一步壓縮;

2) 最大打開頁數(shù)20頁(A4幅面);

3) 最大批注層數(shù)量6層。

所描述的極限參數(shù)都在intel E5200、 1 GByte RAM、 Windows XP環(huán)境中得到, 不同機型配置有所不同。

4 結(jié) 語

該系統(tǒng)在遠程作業(yè)批改和電子稿件評審中得到了很好的應(yīng)用, 對于教師, 改善或替代了傳統(tǒng)紙質(zhì)方式的批改。該系統(tǒng)可作為電子課業(yè)手寫批注的公共平臺, 具有很好的教學(xué)效果和推廣價值。與此同時, 該系統(tǒng)在政府機關(guān), 可用于電子政務(wù)的公文扭轉(zhuǎn)[9]; 在工商企業(yè), 可用于電子商務(wù)的信息交流; 在衛(wèi)生醫(yī)療, 可用于電子病案[10]的真跡保留。未來還可引入云存儲系統(tǒng)[11], 通過網(wǎng)絡(luò)提供給用戶動態(tài)資源, 得到授權(quán)的用戶可瀏覽使用這些資源, 實現(xiàn)資源共享。

參考文獻:

[1]董險峰, 宋廷貴. 實驗教學(xué)網(wǎng)絡(luò)的管理與安全 [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]潘巧明, 任清褒, 胡偉儉. 地方性高校開放實驗室個性化服務(wù)的調(diào)研----以計算機基礎(chǔ)實驗室開放建設(shè)為例 [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開發(fā)技術(shù)大全 [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編程中使用鉤子技術(shù)實現(xiàn)程序窗口監(jiān)控 [J]. 計算機與現(xiàn)代化, 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編程從基礎(chǔ)到實踐 [M].陳克忠, 譯. 北京: 電子工業(yè)出版社, 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]程開東, 董險峰, 馬駟良. 基于極角特征匹配的動態(tài)簽名鑒別算法 [J]. 吉林大學(xué)學(xué)報: 理學(xué)版, 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]. 吉林大學(xué)學(xué)報: 理學(xué)版, 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]董險峰, 楊華, 謝偉. 網(wǎng)絡(luò)化辦公與電子文件批注 [J]. 現(xiàn)代情報, 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]董險峰. 醫(yī)院信息系統(tǒng)的設(shè)計與開發(fā) [J]. 現(xiàn)代情報, 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]王林松, 劉德山, 郭瑾, 等. 公共云安全體系結(jié)構(gòu)設(shè)計 [J]. 吉林大學(xué)學(xué)報: 信息科學(xué)版, 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.

猜你喜歡
窗體留痕筆跡
巧克力能否去除桌上的油性筆筆跡
少兒科技(2021年3期)2021-01-20 13:18:34
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
檔案天地(2019年5期)2019-06-12 05:12:02
筆跡泄露大秘密
快樂語文(2016年7期)2016-11-07 09:43:56
實施留痕管理 推進“兩責(zé)”落實
筆跡不說謊
筆跡鑒定過程中的心理偏差及其控制
基于LayeredWindow的異形窗體局部刷新
中文信息(2014年2期)2014-03-06 23:49:14
巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
WinCE.net下圖形用戶界面的開發(fā)
焦作市| 芦溪县| 监利县| 云霄县| 邢台市| 沂源县| 吴堡县| 右玉县| 万安县| 罗田县| 西畴县| 元阳县| 泸西县| 贵德县| 尤溪县| 定兴县| 英超| 北川| 大埔区| 佛学| 华阴市| 沾化县| 突泉县| 雷波县| 锡林浩特市| 云林县| 石阡县| 东海县| 陆川县| 彰武县| 长寿区| 饶河县| 双流县| 旌德县| 凤凰县| 华宁县| 宝鸡市| 秦安县| 灵台县| 花垣县| 威海市|