一種擦除筆跡的方法
2023-06-07 01:45:21 1
專利名稱:一種擦除筆跡的方法
技術領域:
本發明涉及觸控螢幕筆跡處理技術,尤其涉及一種擦除筆跡的方法。
背景技術:
隨著計算機的普及和應用,觸控螢幕越來越受到人們的歡迎。筆跡書寫是觸 摸屏最重要的功能之一,在書寫過程中產生一些數據點,將這些數據點按照某 種方法進行處理(或者不做任何處理),然後再按照某種線的連接方式將處理後 的點依次進行連接,從而形成了筆跡。在觸控螢幕進行書寫時,經常會出現筆跡書寫錯誤或者在先書寫的筆跡不再 需要的情況,這時就需要對筆跡進行擦除。目前針對筆跡的擦除方法主要有以下兩種1、 筆跡本身就不被生成對象,而且直接使用背景顏色填充板擦經過的軌跡區域;這種方法沒有筆跡對象的概念,也沒有筆跡對象的操作功能,而且板擦 軌跡也不真實。2、 筆跡本身被生成對象,針對對象進行整體擦除,即將板擦軌跡區域所經 過的筆跡對象進行整體刪除;而不能只將筆跡對象在板擦軌跡區域中的部分擦 除掉,使需要保留的部分筆跡也被擦除,不能較好地模擬真實的黑板擦除效果。發明內容本發明的目的在於克服上述現有技術的缺點和不足,提供一種擦除筆跡的 方法,採用本發明方法中的筆跡本身就被生成對象,而且只將筆跡對象在板擦 軌跡區域中的部分擦除掉,並將位於板擦軌跡區域之外的筆跡重新生成對象, 能夠較好地模擬真實的黑板檫除效果。本發明的目的通過下述技術方案實現 一種擦除筆跡的方法,採用計算機 的多線程技術,具體包括線程S1和線程S2,而且線程S1和線程S2同時啟動, 其中,線程S1包括以下步驟511、 線程S1啟動;512、 獲取板擦移動的當前點的信息;4513、 根據當前點的前一點與當前點的信息構造一個板擦軌跡區域,當前點 的前一點是按照點產生的時間先後順序來確定,當前點的前一點即是當前點在 時間上的前一點;若只有一個點,即將該點視為當前點,則根據該當前點構造 一個板擦軌跡區域,當然,在實際應用中只有一個點的情況極少發生;514、 根據板擦軌跡區域與筆跡對象的位置關係,判斷是否產生擦除消息; 若是,則進入S15;否,則返回到S12;515、 取該板擦軌跡區域的背景圖片填充該板擦軌跡區域,並向線程S2發 送擦除消息;線程S2包括以下步驟-521、 線程S2啟動;522、 等待信息;523、 接收來自線程S1的消息並存入消息緩衝區;524、 從消息緩衝區中依次取出消息,並判斷是否產生擦除消息,若是,則 直接進入S26;若否,則進入S25;525、 判斷是否為退出消息,是,則退出線程S2;否則返回到S22;526、 將筆跡對象在板擦軌跡區域中的部分擦除,並將位於板擦軌跡區域之 外的筆跡重新生成相應的筆跡對象。作為現有的公知技術,在板檫移動過程中,觸控螢幕會依次緩存板檫移動過 程中產生的各個點。作為現有的公知技術,線程S2所述判斷是否為擦除消息,進而判斷是否為 退出消息,該退出消息可以由線程S1或其它線程輸入。上述方法中,線程S1的步驟S13所述的根據當前點的前一點與當前點的信 息構造一個板擦軌跡區域,具體方法如下根據當前點的前一點與當前點的信 息,確定這兩點之間的連直線段;分別以這兩點做直線段的兩條長度為d的垂線段,使得這兩點分別為所做兩條垂線段的中點,平行連接這兩條垂線段的兩端,可得一個矩形區域;再分別以這兩點為圓心、垂線段為直徑畫兩個圓;由 矩形區域與這兩個圓的併集區域組成板擦軌跡區域;對應於上述線程Sl步驟S13所述的根據當前點的前一點與當前點的信息構 造一個板擦軌跡區域的具體方法,所述擦除消息包括圓形擦除消息和矩形擦除消息;對應的,線程S2的步驟S26所述的將筆跡對象在板擦軌跡區域中的部分擦 除,並將位於板擦軌跡區域之外的筆跡重新生成相應的筆跡對象,具體方法如 下判斷擦除消息是否為矩形擦除消息,若是,則進行矩形擦除處理;若否, 則進行圓形擦除處理;所述矩形擦除處理是指將筆跡對象在矩形區域中的部分 擦除,並將位於矩形區域之外的筆跡重新生成相應的筆跡對象;所述圓形擦除 處理是指將筆跡對象在圓形區域中的部分擦除,並將位於圓形區域之外的筆跡 重新生成相應的筆跡對象。所述d為經驗值, 一般根據觸控螢幕的屏幕解析度等來確定。上述方法中,線程S1的步驟S13所述的若只有一個點,即將該點視為當前 點,則根據該當前點構造一個板擦軌跡區域,具體方法如下以該點為圓心、 直徑為d畫兩一個圓,由這個圓的區域組成板擦軌跡區域;對應於上述線程Sl步驟S13所述的若只有一個點,即將該點視為當前點, 則根據該當前點構造一個板擦軌跡區域的具體方法,所述擦除消息為圓形擦除 消息;對應的,線程S2的步驟S26所述的將筆跡對象在板擦軌跡區域中的部分擦 除,並將位於板擦軌跡區域之外的筆跡重新生成相應的筆跡對象,具體方法如 下判斷擦除消息是否為圓形擦除消息,若是,則進行圓形擦除處理;所述圓 形擦除處理是指將筆跡對象在圓形區域中的部分擦除,並將位於圓形區域之外 的筆跡重新生成相應的筆跡對象。所述d為經驗值, 一般根據觸控螢幕的屏幕解析度等來確定。與現有技術相比,本發明具有以下有益效果1、 採用本發明方法中的筆跡本身就被生成對象,而且只將筆跡對象在板擦 軌跡區域中的部分擦除掉,並將位於板擦軌跡區域之外的筆跡重新生成對象, 能夠較好地模擬真實的黑板擦除效果;2、 本發明方法可以採用矩形擦除處理和圓形擦除處理相結合的方式,使本 發明在處理筆跡時具有很好平滑效果,可以更真實地模擬黑板擦除的實際效果;3、 本發明方法採用多線程的背景填充技術,並可以讓筆跡對象在被擦除後 能很快地重新生成相應的筆跡對象, 一方面使用戶能夠實時地看到擦除效果, 另一方面又使所生成的筆跡對象擁有相應的對象操作。
圖l是本發明一種擦除筆跡的方法的流程圖;圖2是本發明一種擦除筆跡的方法的板擦軌跡示意圖;圖3是本發明一種擦除筆跡的方法的板擦兩點軌跡圖;圖4是本發明一種擦除筆跡的方法的筆跡與板擦軌跡的矩形相交示意圖; 圖5是本發明一種擦除筆跡的方法矩形擦除處理後示意圖; 圖6是本發明一種擦除筆跡的方法的筆跡與板擦軌跡的圓相交示意圖; 圖7是本發明一種擦除筆跡的方法的圓形擦除處理後示意圖。
具體實施方式
下面結合實施例及附圖,對本發明作進一步地詳細說明,但本發明的實施 方式不限於此。總的來說,本發明一種擦除筆跡的方法,採用計算機的多線程技術,具體包括線程S1和線程S2,而且線程S1和線程S2同時啟動,其中,線程S1包括以下步驟511、 線程S1啟動;512、 獲取板擦移動的當前點的信息;513、 根據當前點的前一點與當前點的信息構造一個板擦軌跡區域,當前點的前一點是按照點產生的時間先後順序來確定,當前點的前一點即是當前點在時間上的前一點;若只有一個點,即將該點視為當前點,則根據該當前點構造 一個板擦軌跡區域,當然,在實際應用中只有一個點的情況極少發生;514、 根據板擦軌跡區域與筆跡對象的位置關係,判斷是否產生擦除消息; 若是,則進入S15;否,則返回到S12;515、 取該板擦軌跡區域的背景圖片填充該板擦軌跡區域,並向線程S2發 送擦除消息;線程S2包括以下步驟521、 線程S2啟動;522、 等待信息;523、 接收來自線程S1的消息並存入消息緩衝區;524、 從消息緩衝區中依次取出消息,並判斷是否為擦除消息,若是,則直 接進入S26;若否,則進入S25;525、 判斷是否為退出消息,是,則退出線程S2;否則返回到S22;526、 將筆跡對象在板擦軌跡區域中的部分擦除,並將位於板擦軌跡區域之 外的筆跡重新生成相應的筆跡對象。下面將根據本發明的具體應用,舉出具體的實施例對本發明做更詳細的描述。實施例1如圖1所示, 一種擦除筆跡的方法,採用計算機的多線程技術,具體包括 線程S1和線程S2,而且線程S1和線程S2同時啟動,其中,線程S1包括以下 步驟511、 初始化,啟動線程S1;512、 獲取板擦移動的當前點P2的信息;513、 根據當前點的前一點Pl與當前點P2的信息,構造板擦兩點的軌跡區域;514、 根據板擦軌跡區域與筆跡對象的位置關係,判斷是否產生擦除消息;若是,則進入S15;否,則返回到S12;515、 從背景中取出由P1與P2所確定的板擦軌跡區域的圖片,再使用該圖 片填充由Pl與P2所確定的板擦軌跡區域,向線程S2發送擦除處理消息。如圖2、圖3所示,所述S13中構造板擦兩點的軌跡區域的方法,包括根據當前點的前一點P1與當前點P2,確定P1、 P2之間的連直線段L1;分 別以P1、 P2做直線段L1的兩條垂線段R1R2和R3R4,並且分別使得P1, P2為 所做兩條垂線段的中點,且PlRl二r,這樣就得到一個矩形區域R1R3R4R2;分 別以P1、 P2兩點為圓心,r為半徑畫兩個圓;最後由矩形區域R1R3R4R2與兩個 圓的併集區域,即是由P1、 P2所確定的板擦軌跡區域。所述的r取值是一個經驗值, 一般根據觸控螢幕的屏幕解析度等來確定,如觸 摸屏的屏幕解析度為1920*1280像素時,r可以取值為40像素。線程S2包括以下步驟521、 啟動線程;522、 等待信息;523、 接收來自線程S1的消息並存入消息緩衝區;524、 從消息緩衝區中依次取出消息,並判斷是否產生擦除消息,若是,則 直接進入S26;若否,則進入S25;525、 判斷是否為退出消息,是,則退出線程S2;否則返回到S22;S26、判斷是否是矩形擦除消息,若是,則進行矩形擦除處理;若否,則進 行圓形擦除處理。如圖4、圖5所示,S25所述矩形擦除處理的辦法,包括-52501、 求出筆跡與矩形區域的兩個交點Q1、 Q2;52502、 先將筆跡分別從Q1、 Q2處斷開,然後去除Ql與Q2之間的部分, 最後保留兩頭部分並重新生成兩個筆跡對象。如圖6、圖7所示,S25所述圓形擦除處理的辦法,包括52511、 求出筆跡與圓形區域的兩個交點Q3、 Q4;52512、 先將筆跡分別從Q3、 Q4處斷開,然後去除Q3與Q4之間的部分, 最後保留兩頭部分並重新生成兩個筆跡對象。上述實施例為本發明較佳的實施方式,但本發明的實施方式並不受所述實 施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、 替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護範圍之內。
權利要求
1、一種擦除筆跡的方法,其特徵在於具體包括線程S1和線程S2,而且線程S1和線程S2同時啟動,其中,線程S1包括以下步驟S11、線程S1啟動;S12、獲取板擦移動的當前點的信息;S13、根據當前點的前一點與當前點的信息構造一個板擦軌跡區域;若只有一個點,即將該點視為當前點,則根據該當前點構造一個板擦軌跡區域;S14、根據板擦軌跡區域與筆跡對象的位置關係,判斷是否產生擦除消息;若是,則進入S15;否,則返回到S12;S15、取該板擦軌跡區域的背景圖片填充該板擦軌跡區域,並向線程S2發送擦除消息;線程S2包括以下步驟S21、線程S2啟動;S22、等待信息;S23、接收來自線程S1的消息並存入消息緩衝區;S24、從消息緩衝區中依次取出消息,並判斷是否產生擦除消息,若是,則直接進入S26;若否,則進入S25;S25、判斷是否為退出消息,是,則退出線程S2;否則返回到S22;S26、將筆跡對象在板擦軌跡區域中的部分擦除,並將位於板擦軌跡區域之外的筆跡重新生成相應的筆跡對象。
2、 如權利要求1所述的一種擦除筆跡的方法,其特徵在於線程Sl的步 驟S13所述的根據當前點的前一點與當前點的信息構造一個板擦軌跡區域,具體方法如下根據當前點的前一點與當前點的信息,確定這兩點之間的連直線段;分別以這兩點做直線段的兩條長度為d的垂線段,使得這兩點分別為所做兩條垂線段的中點,平行連接這兩條垂線段的兩端,可得一個矩形區域;再分 別以這兩點為圓心、垂線段為直徑畫兩個圓;由矩形區域與這兩個圓的併集區 域組成板擦軌跡區域;所述擦除消息包括圓形擦除消息和矩形擦除消息;線程S2的步驟S26所述的將筆跡對象在板擦軌跡區域中的部分擦除,並將 位於板擦軌跡區域之外的筆跡重新生成相應的筆跡對象,具體方法如下判斷 擦除消息是否為矩形擦除消息,若是,則進行矩形擦除處理;若否,則進行圓形擦除處理;所述矩形擦除處理是指將筆跡對象在矩形區域中的部分擦除,並 將位於矩形區域之外的筆跡重新生成相應的筆跡對象;所述圓形擦除處理是指 將筆跡對象在圓形區域中的部分擦除,並將位於圓形區域之外的筆跡重新生成 相應的筆跡對象。
3、 如權利要求2所述的一種擦除筆跡的方法,其特徵在於所述d為經驗值。
4、 如權利要求1所述的一種擦除筆跡的方法,其特徵在於線程Sl的步 驟S13所述的若只有一個點,即將該點視為當前點,則根據該當前點構造一個 板擦軌跡區域,具體方法如下以該點為圓心、直徑為d畫一個圓,由這個圓 的區域組成板擦軌跡區域;所述擦除消息為圓形擦除消息;線程S2的步驟S26所述的將筆跡對象在板擦軌跡區域中的部分擦除,並將 位於板擦軌跡區域之外的筆跡重新生成相應的筆跡對象,具體方法如下判斷 擦除消息是否為圓形擦除消息,若是,則進行圓形擦除處理;所述圓形擦除處 理是指將筆跡對象在圓形區域中的部分擦除,並將位於圓形區域之外的筆跡重 新生成相應的筆跡對象。
5、 如權利要求4所述的一種擦除筆跡的方法,其特徵在於所述d為經驗值。
全文摘要
本發明為一種擦除筆跡的方法,包括線程S1和線程S2,S1包括11、線程啟動;12、獲取當前點信息;13、構造板擦軌跡區域;14、判斷是否產生擦除消息;是則進入15;否則回到12;15、取區域的背景圖片填充區域,並向線程S2發送擦除消息;線程S2包括以下步驟21、線程啟動;22、等待信息;23、接收線程S1的消息並存入消息緩衝區;24、依次取出消息,判斷是否產生擦除消息,是則直接進入26;否則進入25;25、判斷是否為退出消息,是則退出線程S2;否則回到22;26、將筆跡對象在區域中的部分擦除,將位於區域之外的筆跡重新生成筆跡對象。本發明方法中的筆跡本身就被生成對象,只將筆跡對象在區域中的部分擦除掉,並將位於區域之外的筆跡重新生成對象。
文檔編號G06F9/46GK101609560SQ20091004119
公開日2009年12月23日 申請日期2009年7月16日 優先權日2009年7月16日
發明者簡建平, 胡建華, 陳先志 申請人:廣東威創視訊科技股份有限公司