曲線擦除方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種曲線擦除方法及系統(tǒng),方法包括:按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成第一集合;計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第二集合;獲取待擦除點(diǎn)的坐標(biāo);依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所在的矩形;移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。通過(guò)有序獲取曲線上所有點(diǎn)的坐標(biāo),并計(jì)算出每?jī)蓚€(gè)相鄰點(diǎn)構(gòu)成的矩形,從而曲線擦除時(shí),通過(guò)待擦除點(diǎn)的坐標(biāo)和計(jì)算出的矩形得到待擦除點(diǎn)所在的矩形,移除該待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線即實(shí)現(xiàn)了曲線擦除,無(wú)需依賴曲線的數(shù)學(xué)公式,擦除準(zhǔn)確,并且具有運(yùn)算量小、擦除速度快的優(yōu)點(diǎn)。
【專利說(shuō)明】
曲線擦除方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種曲線擦除方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著科技的發(fā)展,利用計(jì)算機(jī)軟件來(lái)繪制或處理圖像已經(jīng)開(kāi)始普及,而圖像繪制 或處理過(guò)程往往都會(huì)需要擦除曲線。目前擦除曲線的方法都是通過(guò)計(jì)算橡皮擦對(duì)應(yīng)的區(qū)域 是否和曲線有交點(diǎn),如果有交點(diǎn),則刪除對(duì)應(yīng)曲線。如公開(kāi)號(hào)為CN 104992460A的中國(guó)專利 公開(kāi)了一種擦除矢量筆記的方法,包括下列步驟:當(dāng)檢測(cè)到擦除動(dòng)作時(shí),保存擦除開(kāi)始之前 的矢量筆跡,并將所有的矢量筆跡轉(zhuǎn)換成對(duì)應(yīng)的非矢量筆跡,顯示非矢量筆跡并隱藏矢量 筆跡;檢測(cè)板擦的移動(dòng)軌跡,實(shí)時(shí)計(jì)算和顯示對(duì)非矢量筆跡的擦除,同時(shí)記錄和計(jì)算擦除軌 跡;當(dāng)檢測(cè)到擦除動(dòng)作結(jié)束時(shí),將記錄的所有擦除軌跡與擦除開(kāi)始之前保存的矢量筆跡進(jìn) 行相交運(yùn)算,得到擦除后的矢量筆跡;隱藏非矢量筆跡,并顯示擦除后的矢量筆跡。采用上 述方法擦除曲線,計(jì)算量比較大,且每條曲線的數(shù)學(xué)公式都不一樣,容易造成擦除不準(zhǔn)確的 現(xiàn)象。
[0003] 現(xiàn)有技術(shù)中也有通過(guò)直接覆蓋曲線相應(yīng)的區(qū)域來(lái)進(jìn)行曲線擦除的方法,但是擦除 一條曲線需要的時(shí)間較長(zhǎng),并且需要來(lái)回拖動(dòng)橡皮擦,用戶體驗(yàn)較差。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問(wèn)題是:提供一種擦除曲線的方法及系統(tǒng),能夠不依賴曲 線的數(shù)學(xué)公式對(duì)曲線進(jìn)行快速擦除,計(jì)算量小,準(zhǔn)確度高。
[0005] 為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
[0006] -種曲線擦除方法,包括:
[0007] 按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成第一集合;
[0008] 計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第二集合;
[0009] 獲取待擦除點(diǎn)的坐標(biāo);
[0010] 依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所在的矩形;
[0011] 移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0012] 本發(fā)明的另一個(gè)技術(shù)方案為:
[0013] -種曲線擦除系統(tǒng),包括:
[0014] 第一獲取模塊,用于按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成 第一集合;
[0015] 矩形計(jì)算模塊,用于計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu) 成第二集合;
[0016] 第二獲取模塊,用于獲取待擦除點(diǎn)的坐標(biāo);
[0017] 矩形匹配模塊,用于依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除 點(diǎn)所在的矩形;
[0018] 移除模塊,用于移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0019] 本發(fā)明的有益效果在于:繪制曲線時(shí),有序地獲取曲線上各點(diǎn)的坐標(biāo)集合,再通過(guò) 各點(diǎn)的坐標(biāo)計(jì)算每?jī)蓚€(gè)相鄰點(diǎn)構(gòu)成的矩形集合,即第二集合;需要擦除某部分曲線時(shí),獲取 待擦除的點(diǎn)的坐標(biāo),而待擦除的點(diǎn)會(huì)存在于矩形集合中的一個(gè)或者幾個(gè)矩形中,因此能夠 根據(jù)待擦除點(diǎn)的坐標(biāo)和該矩形集合得到待擦除點(diǎn)所在的矩形,這些矩形對(duì)應(yīng)的曲線即為待 擦除的曲線,從而通過(guò)移除待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線實(shí)現(xiàn)曲線擦除。本發(fā)明無(wú)需依 賴曲線的數(shù)學(xué)公式,擦除準(zhǔn)確,并且運(yùn)算量小,擦除速度快。
【附圖說(shuō)明】
[0020] 圖1為本發(fā)明一實(shí)施例的曲線擦除方法的流程圖;
[0021] 圖2為本發(fā)明實(shí)施例一的曲線擦除方法的流程圖;
[0022] 圖3為本發(fā)明實(shí)施例一的曲線擦除方法的計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形的 流程圖;
[0023] 圖4為本發(fā)明一實(shí)施例的曲線擦除系統(tǒng)的結(jié)構(gòu)示意圖;
[0024] 圖5為本發(fā)明實(shí)施例二的曲線擦除系統(tǒng)的結(jié)構(gòu)示意圖。
[0025] 標(biāo)號(hào)說(shuō)明:
[0026] 1、第一獲取模塊;2、矩形計(jì)算模塊;21、橫坐標(biāo)計(jì)算模塊;22、縱坐標(biāo)計(jì)算模塊;23、 長(zhǎng)度計(jì)算模塊;24、寬度計(jì)算模塊;25、矩形獲取模塊;3、第二獲取模塊;4、矩形匹配模塊; 41、遍歷模塊;42、第三獲取模塊;43、第四獲取模塊;5、移除模塊;6、列表創(chuàng)建模塊。
【具體實(shí)施方式】
[0027] 為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附 圖予以說(shuō)明。
[0028] 本發(fā)明最關(guān)鍵的構(gòu)思在于:計(jì)算曲線上每相鄰兩點(diǎn)構(gòu)成的矩形;擦除曲線時(shí)先得 到待擦除點(diǎn)所在的矩形,再移除待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0029]本發(fā)明涉及的技術(shù)術(shù)語(yǔ)解釋:
[0031]請(qǐng)參照?qǐng)D1,本發(fā)明提供 [0032] 一種曲線擦除方法,包括:
[0033] S1:按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成第一集合;
[0034] S2:計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第二集合;
[0035] S3:獲取待擦除點(diǎn)的坐標(biāo);
[0036] S4:依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所在的矩形;
[0037] S5:移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0038] 從上述描述可知,本發(fā)明曲線擦除方法的有益效果在于:通過(guò)有序獲取曲線上所 有點(diǎn)的坐標(biāo),并計(jì)算出每?jī)蓚€(gè)相鄰點(diǎn)構(gòu)成的矩形,從而曲線擦除時(shí),通過(guò)待擦除點(diǎn)的坐標(biāo)和 計(jì)算出的矩形得到待擦除點(diǎn)所在的矩形,移除該待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線即實(shí)現(xiàn)了 曲線擦除,無(wú)需依賴曲線的數(shù)學(xué)公式,擦除準(zhǔn)確,并且具有運(yùn)算量小、擦除速度快的優(yōu)點(diǎn)。
[0039] 進(jìn)一步的,所述計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形具體為:
[0040] S21:依次比較第一集合中相鄰兩點(diǎn)的橫坐標(biāo)大小,將較小的橫坐標(biāo)標(biāo)記作為所述 相鄰兩點(diǎn)對(duì)應(yīng)的矩形左上角的橫坐標(biāo)rx;
[0041 ] S22:依次比較所述相鄰兩點(diǎn)的縱坐標(biāo)大小,將較小的縱坐標(biāo)標(biāo)記作為所述矩形左 上角的縱坐標(biāo)ry;
[0042] S23:將所述相鄰兩點(diǎn)的橫坐標(biāo)之差的絕對(duì)值作為所述矩形的長(zhǎng)rw;
[0043] S24:將所述相鄰兩點(diǎn)的縱坐標(biāo)之差的絕對(duì)值作為所述矩形的寬rh;
[0044] S25:依據(jù)所述矩形左上角的橫坐標(biāo)rx、矩形左上角的縱坐標(biāo)ry、矩形的長(zhǎng)rw、矩形 的寬rh得到第一集合中每相鄰兩點(diǎn)構(gòu)成的矩形R(rx,ry,rw,rh)。
[0045] 從上述描述可知,依次通過(guò)確定矩形左上角的坐標(biāo)以及矩形的長(zhǎng)度和寬度得到每 相鄰兩點(diǎn)構(gòu)成的矩形;還可通過(guò)確定對(duì)角線的兩個(gè)端點(diǎn)坐標(biāo)等方法得到相鄰兩點(diǎn)構(gòu)成的矩 形。
[0046] 進(jìn)一步的,所述依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所 在的矩形具體為:
[0047] 判斷所述待擦除點(diǎn)是否包含在當(dāng)前的矩形中;
[0048] 若是,則標(biāo)記當(dāng)前的矩形為待擦除點(diǎn)所在的矩形;
[0049] 若否,繼續(xù)判斷下一個(gè)矩形,直至所述第二集合中的矩形全部遍歷。
[0050] 從上述描述可知,通過(guò)遍歷第二集合中的每一個(gè)矩形,判斷待擦除點(diǎn)是否包含在 該矩形內(nèi),從而得到待擦除點(diǎn)所在的所有矩形。
[0051] 進(jìn)一步的,所述計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第 二集合之后,獲取待擦除點(diǎn)的坐標(biāo)之前,進(jìn)一步包括:
[0052] S031:創(chuàng)建當(dāng)前曲線的ID,并將所述第二集合和所述ID放入哈希表中。
[0053]進(jìn)一步的,所述依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所 在的矩形具體為:
[0054] S41:遍歷所述哈希表,得到所述待擦除點(diǎn)對(duì)應(yīng)的曲線的ID;
[0055] S42:依據(jù)所述曲線的ID得到對(duì)應(yīng)的第二集合;
[0056] S43:依據(jù)所述待擦除點(diǎn)和所述對(duì)應(yīng)的第二集合得到所述待擦除點(diǎn)所在的矩形。
[0057] 從上述描述可知,繪制的曲線可能不止一條,因此每繪制完成一條曲線即創(chuàng)建該 曲線的ID,并將創(chuàng)建的ID和對(duì)應(yīng)的矩形集合一起放入哈希表中,建立了曲線與對(duì)應(yīng)矩形之 間的關(guān)聯(lián)關(guān)系;曲線查找時(shí)能夠在哈希表中根據(jù)曲線的ID找到對(duì)應(yīng)的矩形集合,再依據(jù)待 擦除點(diǎn)和對(duì)應(yīng)的矩形集合即可得到待擦除點(diǎn)所在的矩形。
[0058]進(jìn)一步的,通過(guò)touchesmove事件按照曲線繪制的順序有序地獲取曲線上所有點(diǎn) 的坐標(biāo)。
[0059] 從上述描述可知,通過(guò)touchesmove事件即可在曲線繪制時(shí)獲取到曲線上的所有 點(diǎn)的坐標(biāo),并且能夠獲知曲線是否繪制完成。
[0060]請(qǐng)參照?qǐng)D4,本發(fā)明的另一個(gè)技術(shù)方案為:
[00611 一種曲線擦除系統(tǒng),包括:
[0062]第一獲取模塊1,用于按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成 第一集合;
[0063] 矩形計(jì)算模塊2,用于計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu) 成第二集合;
[0064] 第二獲取模塊3,用于獲取待擦除點(diǎn)的坐標(biāo);
[0065] 矩形匹配模塊4,用于依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除 點(diǎn)所在的矩形;
[0066] 移除模塊5,用于移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0067] 從上述描述可知,本發(fā)明的曲線擦除系統(tǒng)的有益效果在于:第一獲取模塊1在曲線 繪制時(shí)有序地獲取曲線上所有點(diǎn)的坐標(biāo),矩形計(jì)算模塊2再計(jì)算出相鄰兩點(diǎn)構(gòu)成的矩形;從 而第二獲取模塊3獲取到待擦除點(diǎn)的坐標(biāo)后,矩形匹配模塊4能夠根據(jù)該待擦除點(diǎn)的坐標(biāo)和 矩形計(jì)算模塊2計(jì)算出的矩形得到待擦除點(diǎn)所在的矩形,移除模塊5再移除該待擦除點(diǎn)所在 的矩形對(duì)應(yīng)的曲線,實(shí)現(xiàn)曲線擦除;無(wú)需依賴曲線的數(shù)學(xué)公式,擦除準(zhǔn)確,且擦除速度快。 [0068]進(jìn)一步的,所述矩形計(jì)算模塊2包括:
[0069] 橫坐標(biāo)計(jì)算模塊21,用于依次比較第一集合中相鄰兩點(diǎn)的橫坐標(biāo)大小,將較小的 橫坐標(biāo)標(biāo)記作為所述相鄰兩點(diǎn)對(duì)應(yīng)的矩形左上角的橫坐標(biāo)rx;
[0070] 縱坐標(biāo)計(jì)算模塊22,用于依次比較所述相鄰兩點(diǎn)的縱坐標(biāo)大小,將較小的縱坐標(biāo) 標(biāo)記作為所述矩形左上角的縱坐標(biāo)ry;
[0071] 長(zhǎng)度計(jì)算模塊23,用于將所述相鄰兩點(diǎn)的橫坐標(biāo)之差的絕對(duì)值作為所述矩形的長(zhǎng) rw;
[0072] 寬度計(jì)算模塊24,用于將所述相鄰兩點(diǎn)的縱坐標(biāo)之差的絕對(duì)值作為所述矩形的寬 rh;
[0073] 矩形獲取模塊25,用于依據(jù)所述矩形左上角的橫坐標(biāo)rx、矩形左上角的縱坐標(biāo)ry、 矩形的長(zhǎng)rw、矩形的寬rh得到第一集合中每相鄰兩點(diǎn)構(gòu)成的矩形R(rx,ry,rw,rh)。
[0074] 進(jìn)一步的,還包括:
[0075] 列表創(chuàng)建模塊6,用于創(chuàng)建當(dāng)前曲線的ID,并將所述第二集合和所述ID放入哈希表 中。
[0076]進(jìn)一步的,所述矩形匹配模塊4包括:
[0077] 遍歷模塊41,用于遍歷所述哈希表,得到所述待擦除點(diǎn)對(duì)應(yīng)的曲線的ID;
[0078] 第三獲取模塊42,用于依據(jù)所述曲線的ID得到對(duì)應(yīng)的第二集合;
[0079] 第四獲取模塊43,用于依據(jù)所述待擦除點(diǎn)和所述對(duì)應(yīng)的第二集合得到所述待擦除 點(diǎn)所在的矩形。
[0080] 從上述描述可知,繪制的曲線可能不止一條,因此每繪制完成一條曲線列表創(chuàng)建 模塊6即創(chuàng)建該曲線的ID,并將創(chuàng)建的ID和對(duì)應(yīng)的矩形集合一起放入哈希表中,建立了曲線 與對(duì)應(yīng)矩形之間的關(guān)聯(lián)關(guān)系;從而遍歷模塊41進(jìn)行曲線查找時(shí)能夠在哈希表中找到曲線的 ID,第三獲取模塊42再根據(jù)曲線的ID找到對(duì)應(yīng)的矩形集合,第四獲取模塊43依據(jù)待擦除點(diǎn) 和對(duì)應(yīng)的矩形集合即可得到待擦除點(diǎn)所在的矩形。
[0081] 請(qǐng)參照?qǐng)D2以及圖3,本發(fā)明的實(shí)施例一為:
[0082] 一種曲線擦除方法,包括:
[0083] S1:按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成第一集合;具體 的,通過(guò)touchesmove事件按照曲線繪制的順序有序地獲取曲線上所有點(diǎn)的坐標(biāo);
[0084] S2:計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第二集合;具體 的,計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形包括:S21:依次比較第一集合中相鄰兩點(diǎn)的橫坐 標(biāo)大小,將較小的橫坐標(biāo)標(biāo)記作為所述相鄰兩點(diǎn)對(duì)應(yīng)的矩形左上角的橫坐標(biāo)rx; S22:依次 比較所述相鄰兩點(diǎn)的縱坐標(biāo)大小,將較小的縱坐標(biāo)標(biāo)記作為所述矩形左上角的縱坐標(biāo)ry; S23:將所述相鄰兩點(diǎn)的橫坐標(biāo)之差的絕對(duì)值作為所述矩形的長(zhǎng)rw; S24:將所述相鄰兩點(diǎn)的 縱坐標(biāo)之差的絕對(duì)值作為所述矩形的寬rh;S25:依據(jù)所述矩形左上角的橫坐標(biāo)rx、矩形左 上角的縱坐標(biāo)ry、矩形的長(zhǎng)rw、矩形的寬rh得到第一集合中每相鄰兩點(diǎn)構(gòu)成的矩形R(rx, ry,rw,rh);
[0085]通過(guò)touchesmove事件檢測(cè)到曲線繪制完成后,倉(cāng)ll建當(dāng)前曲線的ID,并將所述第二 集合和所述ID放入哈希表中;如果繪制的曲線為多條,則每繪制一條曲線,都按上述方法將 該曲線的ID和每相鄰兩點(diǎn)構(gòu)成的曲線的集合放入哈希表中;
[0086] S3:獲取待擦除點(diǎn)的坐標(biāo);
[0087] S41:遍歷所述哈希表,得到所述待擦除點(diǎn)對(duì)應(yīng)的曲線的ID; S42:依據(jù)所述曲線的 ID得到對(duì)應(yīng)的第二集合;S43:依據(jù)所述待擦除點(diǎn)和所述對(duì)應(yīng)的第二集合得到所述待擦除點(diǎn) 所在的矩形;具體的,判斷所述待擦除點(diǎn)是否包含在當(dāng)前的矩形中;若是,則標(biāo)記當(dāng)前的矩 形為待擦除點(diǎn)所在的矩形;若否,繼續(xù)判斷下一個(gè)矩形,直至所述第二集合中的矩形全部遍 歷;
[0088] S5:移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0089] 下面為本發(fā)明曲線擦除方法的一個(gè)具體實(shí)例:
[0090] (1)在設(shè)備中的電子畫布繪制曲線時(shí),通過(guò)設(shè)備的響應(yīng)touchesmove事件獲取曲線 上所有點(diǎn)的坐標(biāo),構(gòu)成有序的集合C1;
[0091 ] (2)然后按照繪制的順序獲取集合C1中的點(diǎn)ρ?,ρ2,ρ3···ρη;
[0092 ] (3)計(jì)算相鄰的兩個(gè)點(diǎn)(ρη-1,ρη)構(gòu)成的矩形R,具體為:比較ρη-1X和ρηχ的大小, 取小的值賦值給rx,作為矩形R左上角的橫坐標(biāo);比較pn-ly和pny的大小,取小的值賦值給 ry,作為矩形R左上角的縱坐標(biāo);pn-ly減pny得dy,取dy絕對(duì)值賦值給rw,作為矩形R的長(zhǎng); pn-1 X減ρηχ得dx,取dx絕對(duì)值賦值給rh,作為矩形R的寬;
[0093] (4)再將計(jì)算出的所有矩形1?(^,^,^,1'11)按順序放入集合02中;
[0094] (5)通過(guò)設(shè)備的響應(yīng)touchesmove事件檢測(cè)到曲線繪制完成,貝lj倉(cāng)ij建該曲線的ID, 并將集合C2和該ID放入哈希表HashMap(HM)中,
[0095]如果繪制的曲線為多條,則重復(fù)上述步驟(1)-(5),直到所有曲線的ID和對(duì)應(yīng)的集 合C2放入哈希表中;
[0096]需要擦除曲線時(shí),獲取待擦除點(diǎn)的坐標(biāo)c(xl,yl)、e(x2,y2),由于線是由點(diǎn)構(gòu)成 的,點(diǎn)dPe構(gòu)成的線即是需要擦除的曲線;遍歷哈希表(HM)中所有曲線的ID,得到點(diǎn)dPe所 在的曲線10,再根據(jù)該10得到對(duì)應(yīng)的集合02;遍歷集合02中的矩形1?(^,巧4¥,1'11),判斷〇 和e是否在矩形R(rx,ry,rw,rh)中,具體的,例如:1)比較rx和xl,如果xl小于rx則點(diǎn)c不在 矩形中;2)如果xl大于rx則比較rx加rw得到的和sx與xl,如果sx小于xl則點(diǎn)c不在矩形中; 3)比較ry和yl,如果yl小于ry則點(diǎn)c不在矩形中;4)如果大于ry則比較ry加rh得到的和sy與 yl,如果sy小于yl則不點(diǎn)c不在矩形中;除了以上四種情況,其他情況都判定c在矩形中;
[0097] 如果得出(3&1,71)、6&2,72)在矩形1?1、1?2和1?中,1?1、1?2、1?構(gòu)成集合03,則從哈 希表(HM)中移除集合C3,并移除電子畫布上集合C3對(duì)應(yīng)的曲線。
[0098]請(qǐng)參照?qǐng)D5,本發(fā)明的實(shí)施例二為:
[0099] -種配合上述實(shí)施例一的曲線擦除方法的系統(tǒng),包括:
[0100] 第一獲取模塊1,用于按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成 第一集合;具體的,通過(guò)touchesmove事件按照曲線繪制的順序有序地獲取曲線上所有點(diǎn)的 坐標(biāo);
[0101] 橫坐標(biāo)計(jì)算模塊21,用于依次比較第一集合中相鄰兩點(diǎn)的橫坐標(biāo)大小,將較小的 橫坐標(biāo)標(biāo)記作為所述相鄰兩點(diǎn)對(duì)應(yīng)的矩形左上角的橫坐標(biāo) rx;縱坐標(biāo)計(jì)算模塊22,用于依 次比較所述相鄰兩點(diǎn)的縱坐標(biāo)大小,將較小的縱坐標(biāo)標(biāo)記作為所述矩形左上角的縱坐標(biāo) ry;長(zhǎng)度計(jì)算模塊23,用于將所述相鄰兩點(diǎn)的橫坐標(biāo)之差的絕對(duì)值作為所述矩形的長(zhǎng)rw;寬 度計(jì)算模塊24,用于將所述相鄰兩點(diǎn)的縱坐標(biāo)之差的絕對(duì)值作為所述矩形的寬rh;矩形獲 取模塊25,用于依據(jù)所述矩形左上角的橫坐標(biāo)rx、矩形左上角的縱坐標(biāo)ry、矩形的長(zhǎng)rw、矩 形的寬rh得到第一集合中每相鄰兩點(diǎn)構(gòu)成的矩形R(rx,ry,rw,rh);計(jì)算出的所有矩形構(gòu)成 第二集合;
[0102]列表創(chuàng)建模塊6,用于通過(guò)touchesmove事件檢測(cè)到曲線繪制完成后,倉(cāng)ij建當(dāng)前曲 線的ID,并將所述第二集合和所述ID放入哈希表中;
[0103] 第二獲取模塊3,用于獲取待擦除點(diǎn)的坐標(biāo);
[0104] 遍歷模塊41,用于遍歷所述哈希表,得到所述待擦除點(diǎn)對(duì)應(yīng)的曲線的ID;第三獲取 模塊42,用于依據(jù)所述曲線的ID得到對(duì)應(yīng)的第二集合;第四獲取模塊43,用于依據(jù)所述待擦 除點(diǎn)和所述對(duì)應(yīng)的第二集合得到所述待擦除點(diǎn)所在的矩形;具體的,判斷所述待擦除點(diǎn)是 否包含在當(dāng)前的矩形中;若是,則標(biāo)記當(dāng)前的矩形為待擦除點(diǎn)所在的矩形;若否,繼續(xù)判斷 下一個(gè)矩形,直至所述第二集合中的矩形全部遍歷;
[0105] 移除模塊5,用于移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。
[0106] 綜上所述,本發(fā)明提供的曲線移除方法及系統(tǒng),通過(guò)有序地獲取曲線上的所有點(diǎn) 坐標(biāo),計(jì)算每相鄰兩點(diǎn)構(gòu)成的矩形,從而曲線可以用對(duì)應(yīng)的矩形集合表示;擦除曲線時(shí)只要 獲取待擦除點(diǎn)的坐標(biāo),根據(jù)該坐標(biāo)找到待擦除點(diǎn)所在的矩形,再對(duì)矩形對(duì)應(yīng)的曲線移除即 可。本發(fā)明實(shí)現(xiàn)過(guò)程簡(jiǎn)單,運(yùn)算量小,并且無(wú)需依賴曲線的數(shù)學(xué)公式,具有擦除速度快和擦 除準(zhǔn)確的優(yōu)點(diǎn),大大提高了用戶的體驗(yàn),并且對(duì)設(shè)備的性能要求低,適用性強(qiáng)。
[0107]以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說(shuō)明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括 在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種曲線擦除方法,其特征在于,包括: 按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成第一集合; 計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第二集合; 獲取待擦除點(diǎn)的坐標(biāo); 依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所在的矩形; 移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。2. 根據(jù)權(quán)利要求1所述的曲線擦除方法,其特征在于,所述計(jì)算第一集合中相鄰兩點(diǎn)構(gòu) 成的矩形具體為: 依次比較第一集合中相鄰兩點(diǎn)的橫坐標(biāo)大小,將較小的橫坐標(biāo)標(biāo)記作為所述相鄰兩點(diǎn) 對(duì)應(yīng)的矩形左上角的橫坐標(biāo)rx; 依次比較所述相鄰兩點(diǎn)的縱坐標(biāo)大小,將較小的縱坐標(biāo)標(biāo)記作為所述矩形左上角的縱 坐標(biāo)ry; 將所述相鄰兩點(diǎn)的橫坐標(biāo)之差的絕對(duì)值作為所述矩形的長(zhǎng)rw; 將所述相鄰兩點(diǎn)的縱坐標(biāo)之差的絕對(duì)值作為所述矩形的寬rh; 依據(jù)所述矩形左上角的橫坐標(biāo)rx、矩形左上角的縱坐標(biāo)ry、矩形的長(zhǎng)rw、矩形的寬rh得 到第一集合中每相鄰兩點(diǎn)構(gòu)成的矩形R(rx,ry,rw,rh)。3. 根據(jù)權(quán)利要求1所述的曲線擦除方法,其特征在于,所述依據(jù)所述待擦除點(diǎn)的坐標(biāo)和 所述第二集合,得到所述待擦除點(diǎn)所在的矩形具體為: 判斷所述待擦除點(diǎn)是否包含在當(dāng)前的矩形中; 若是,則標(biāo)記當(dāng)前的矩形為待擦除點(diǎn)所在的矩形; 若否,繼續(xù)判斷下一個(gè)矩形,直至所述第二集合中的矩形全部遍歷。4. 根據(jù)權(quán)利要求1所述的曲線擦除方法,其特征在于,所述計(jì)算第一集合中相鄰兩點(diǎn)構(gòu) 成的矩形,計(jì)算出的所有矩形構(gòu)成第二集合之后,獲取待擦除點(diǎn)的坐標(biāo)之前,進(jìn)一步包括: 創(chuàng)建當(dāng)前曲線的ID,并將所述第二集合和所述ID放入哈希表中。5. 根據(jù)權(quán)利要求4所述的曲線擦除方法,其特征在于,所述依據(jù)所述待擦除點(diǎn)的坐標(biāo)和 所述第二集合,得到所述待擦除點(diǎn)所在的矩形具體為: 遍歷所述哈希表,得到所述待擦除點(diǎn)對(duì)應(yīng)的曲線的ID; 依據(jù)所述曲線的ID得到對(duì)應(yīng)的第二集合; 依據(jù)所述待擦除點(diǎn)和所述對(duì)應(yīng)的第二集合得到所述待擦除點(diǎn)所在的矩形。6. 根據(jù)權(quán)利要求1所述的曲線擦除方法,其特征在于,通過(guò)touchesmove事件按照曲線 繪制的順序有序地獲取曲線上所有點(diǎn)的坐標(biāo)。7. -種曲線擦除系統(tǒng),其特征在于,包括: 第一獲取模塊,用于按照曲線繪制的過(guò)程有序地獲取曲線上所有點(diǎn)的坐標(biāo),構(gòu)成第一 集合; 矩形計(jì)算模塊,用于計(jì)算第一集合中相鄰兩點(diǎn)構(gòu)成的矩形,計(jì)算出的所有矩形構(gòu)成第 二集合; 第二獲取模塊,用于獲取待擦除點(diǎn)的坐標(biāo); 矩形匹配模塊,用于依據(jù)所述待擦除點(diǎn)的坐標(biāo)和所述第二集合,得到所述待擦除點(diǎn)所 在的矩形; 移除模塊,用于移除所述待擦除點(diǎn)所在的矩形對(duì)應(yīng)的曲線。8. 根據(jù)權(quán)利要求7所述的曲線擦除系統(tǒng),其特征在于,所述矩形計(jì)算模塊包括: 橫坐標(biāo)計(jì)算模塊,用于依次比較第一集合中相鄰兩點(diǎn)的橫坐標(biāo)大小,將較小的橫坐標(biāo) 標(biāo)記作為所述相鄰兩點(diǎn)對(duì)應(yīng)的矩形左上角的橫坐標(biāo)rx; 縱坐標(biāo)計(jì)算模塊,用于依次比較所述相鄰兩點(diǎn)的縱坐標(biāo)大小,將較小的縱坐標(biāo)標(biāo)記作 為所述矩形左上角的縱坐標(biāo)ry; 長(zhǎng)度計(jì)算模塊,用于將所述相鄰兩點(diǎn)的橫坐標(biāo)之差的絕對(duì)值作為所述矩形的長(zhǎng)rw; 寬度計(jì)算模塊,用于將所述相鄰兩點(diǎn)的縱坐標(biāo)之差的絕對(duì)值作為所述矩形的寬rh; 矩形獲取模塊,用于依據(jù)所述矩形左上角的橫坐標(biāo)rx、矩形左上角的縱坐標(biāo)ry、矩形的 長(zhǎng)rw、矩形的寬rh得到第一集合中每相鄰兩點(diǎn)構(gòu)成的矩形R(rx,ry,rw,rh)。9. 根據(jù)權(quán)利要求7所述的曲線擦除系統(tǒng),其特征在于,還包括: 列表創(chuàng)建模塊,用于創(chuàng)建當(dāng)前曲線的ID,并將所述第二集合和所述ID放入哈希表中。10. 根據(jù)權(quán)利要求9所述的曲線擦除系統(tǒng),其特征在于,所述矩形匹配模塊包括: 遍歷模塊,用于遍歷所述哈希表,得到所述待擦除點(diǎn)對(duì)應(yīng)的曲線的ID; 第三獲取模塊,用于依據(jù)所述曲線的ID得到對(duì)應(yīng)的第二集合; 第四獲取模塊,用于依據(jù)所述待擦除點(diǎn)和所述對(duì)應(yīng)的第二集合得到所述待擦除點(diǎn)所在 的矩形。
【文檔編號(hào)】G06T11/80GK106097414SQ201610378108
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年5月31日
【發(fā)明人】蔡專錫, 方振華, 劉德建, 郭玉湖
【申請(qǐng)人】福建天泉教育科技有限公司