亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種矩形圖形識(shí)別散列定位方法

文檔序號(hào):10470831閱讀:235來源:國(guó)知局
一種矩形圖形識(shí)別散列定位方法
【專利摘要】本發(fā)明提供了一種矩形圖形識(shí)別散列定位方法,在出現(xiàn)圖形數(shù)量巨大時(shí)時(shí)能夠快速識(shí)別矩形圖形實(shí)現(xiàn)定位,執(zhí)行效率高,適用廣泛,獲取屏幕的矩形圖形庫中矩形圖形的數(shù)量;獲取屏幕的矩形圖形庫中的每個(gè)矩形的其中一對(duì)對(duì)角的X軸和Y軸坐標(biāo);將獲取的每個(gè)矩形的一對(duì)對(duì)角的X軸和Y軸坐標(biāo)分別按照從小到大或者從大到小的順序排列并分別以線性表的形式表示;取得點(diǎn)擊的點(diǎn)的坐標(biāo);采用二分查找法將所選取的點(diǎn)的X軸坐標(biāo)和Y軸坐標(biāo)單獨(dú)依次分別與每個(gè)矩形的兩個(gè)對(duì)角的X軸坐標(biāo)和Y軸坐標(biāo)進(jìn)行比較,排除所選取的點(diǎn)不能坐落的矩形;經(jīng)A5步驟留下的矩形的個(gè)數(shù)表示為所選的點(diǎn)落在屏幕的矩形圖形庫中的矩形個(gè)數(shù)。
【專利說明】
-種矩形圖形識(shí)別散列定位方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及數(shù)據(jù)結(jié)構(gòu)技術(shù)領(lǐng)域,具體為一種矩形圖形識(shí)別散列定位方法。
【背景技術(shù)】
[0002] 目前,很多應(yīng)用軟件需要進(jìn)行可見即可得的設(shè)計(jì)方式,例如在設(shè)計(jì)過程中需要畫 出很多圖形,運(yùn)些圖形都是不同大小的矩形,它們代表著不同類型的數(shù)據(jù)或者作用。譬如在 觸摸屏中,當(dāng)用戶需要選擇某個(gè)圖形進(jìn)行某種操作的時(shí)候需要點(diǎn)擊該圖形所占據(jù)的區(qū)域, 而系統(tǒng)需要馬上判斷是否點(diǎn)擊了某個(gè)圖形并且識(shí)別是哪個(gè)圖形被選擇W便進(jìn)行下一步處 理。所W,如何迅速識(shí)別是哪個(gè)圖形被選擇并且定位讀取該圖形的相關(guān)數(shù)據(jù)信息成為非常 重要的問題。尤其在圖形數(shù)量非常巨大的情況下,相關(guān)計(jì)算需要處理的數(shù)據(jù)量非常巨大,執(zhí) 行效率低下;其次,在很多如何識(shí)別圖形是否被選擇的方法中,存在使用背景色相區(qū)別的方 法。在運(yùn)種方法中,各個(gè)圖形的背景顏色不同,用戶選取某個(gè)區(qū)域之后,系統(tǒng)根據(jù)被點(diǎn)擊區(qū) 域的背景顏色進(jìn)行判斷哪個(gè)圖形被選擇。該方法只適合于某些圖形背景顏色不同的場(chǎng)合, 如在地圖上進(jìn)行選擇區(qū)域,適用范圍較小。

【發(fā)明內(nèi)容】

[0003] 針對(duì)上述問題,本發(fā)明提供了一種矩形圖形識(shí)別散列定位方法,在出現(xiàn)圖形數(shù)量 巨大時(shí)時(shí)能夠快速識(shí)別矩形圖形實(shí)現(xiàn)定位,執(zhí)行效率高,適用廣泛。
[0004] 其技術(shù)方案是運(yùn)樣的:一種矩形圖形識(shí)別散列定位方法,用于屏幕的矩形區(qū)域操 作選擇,其特征在于:
[0005] 步驟A1:獲取屏幕的矩形圖形庫中矩形圖形的數(shù)量;
[0006] 步驟A2:獲取屏幕的矩形圖形庫中的每個(gè)矩形的其中一對(duì)對(duì)角的X軸和Y軸坐標(biāo);
[0007] 步驟A3:將獲取的每個(gè)矩形的一對(duì)對(duì)角的X軸和Y軸坐標(biāo)分別按照從小到大或者從 大到小的順序排列,并分別W線性表的形式表示;
[000引步驟A4:取得點(diǎn)擊的點(diǎn)的坐標(biāo);
[0009] 步驟A5:采用二分查找法將所選取的點(diǎn)的X軸坐標(biāo)和Y軸坐標(biāo)單獨(dú)依次分別與每個(gè) 矩形的兩個(gè)對(duì)角的X軸坐標(biāo)和Y軸坐標(biāo)進(jìn)行比較,排除所選取的點(diǎn)不能坐落的矩形;
[0010] 步驟A6:經(jīng)A5步驟留下的矩形的個(gè)數(shù)表示為所選的點(diǎn)落在屏幕的矩形圖形庫中的 矩形個(gè)數(shù),當(dāng)剩余的矩形的個(gè)數(shù)為1時(shí)表示所選的點(diǎn)唯一落在運(yùn)一矩形內(nèi)即選擇運(yùn)一矩形 區(qū)域,當(dāng)剩余的矩形的個(gè)數(shù)大于1時(shí)則選取剩余的矩形中最上層的矩形作為所選的點(diǎn)坐落 的矩形即選擇該矩形區(qū)域,當(dāng)剩余的矩形的個(gè)數(shù)小于1時(shí)則表示沒有任何一個(gè)矩形區(qū)域被 選中。
[0011] 其進(jìn)一步的,選取矩形圖形庫每個(gè)矩形的左上角的X軸和Y軸坐標(biāo)和右下角的X軸 和Y軸坐標(biāo),其比較方法如下:
[0012] 步驟B1:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與每個(gè)矩形的左上角的X軸坐 標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)大于等于矩形的左上角的X軸坐標(biāo)表示所選取的點(diǎn)可能落 在對(duì)應(yīng)矩形內(nèi),排除左上角的X軸坐標(biāo)大于所選取點(diǎn)的X坐標(biāo)的矩形;
[0013] 步驟B2:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下的每個(gè)矩 形的左上角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)大于等于矩形的左上角的Y軸坐標(biāo)表 示所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除左上角的Y軸坐標(biāo)大于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0014] 步驟B3:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的右下角的X軸坐標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)小于等于矩形的右下角的X軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi),排除右下角的X軸坐標(biāo)小于所選取點(diǎn)的X坐標(biāo)的矩形;
[0015] 步驟B4:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的右下角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)小于等于矩形的右下角的Y軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除右下角的Y軸坐標(biāo)小于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0016] 步驟B1、步驟B2、步驟B3、步驟B4的進(jìn)行次序可W兩兩互換;
[0017] 其進(jìn)一步的,選取矩形圖形庫每個(gè)矩形的左下角的X軸和Y軸坐標(biāo)和右上角的X軸 和Y軸坐標(biāo),其比較方法如下:
[001引步驟C1:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與每個(gè)矩形的左下角的X軸坐 標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)大于等于矩形的左下角的X軸坐標(biāo)表示所選取的點(diǎn)可能落 在對(duì)應(yīng)矩形內(nèi),排除左下角的X軸坐標(biāo)大于所選取點(diǎn)的X坐標(biāo)的矩形;
[0019] 步驟C2:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的左下角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)小于等于矩形的左下角的Y軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除左下角的Y軸坐標(biāo)小于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0020] 步驟C3:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的右上角的X軸坐標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)小于等于矩形的右上角的X軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi),排除右上角的X軸坐標(biāo)小于所選取點(diǎn)的X坐標(biāo)的矩形;
[0021] 步驟C4:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下的每個(gè)矩 形的右上角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)大于等于矩形的右上角的Y軸坐標(biāo)表 示所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除右上角的Y軸坐標(biāo)大于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0022] 步驟C1、步驟C2、步驟C3、步驟C4的進(jìn)行的次序可W兩兩互換。
[0023] 本發(fā)明的有益效果是:在很多如何識(shí)別圖形是否被選擇的方法中,存在使用背景 色相區(qū)別的方法。在運(yùn)種方法中,各個(gè)圖形的背景顏色不同,用戶使用鼠標(biāo)點(diǎn)擊某個(gè)區(qū)域之 后,系統(tǒng)根據(jù)被點(diǎn)擊區(qū)域的背景顏色進(jìn)行判斷哪個(gè)圖形被選擇。該方法只適合于某些圖形 背景顏色不同的場(chǎng)合,如在地圖上進(jìn)行選擇區(qū)域。本發(fā)明的方法可W有效解決該方法不能 廣泛使用的問題。
[0024] 在本發(fā)明提出的運(yùn)種方法中,由于采用了集合相減、淘汰的總體思路,無需每一個(gè) 圖形的信息都進(jìn)行詳細(xì)地比較,所W大大加快了識(shí)別的速度和效率。在進(jìn)行集合相減過程 之前,本方法使用了二分查找的思路,使得定位速度大幅度提高。
[0025] 采用其他傳統(tǒng)的散列函數(shù)識(shí)別實(shí)際點(diǎn)擊的矩形區(qū)域時(shí)計(jì)算得到的存儲(chǔ)地址不是 連續(xù)的,必然存在存儲(chǔ)空間的極大浪費(fèi),而本發(fā)明提出的散列函數(shù)需要的實(shí)際存儲(chǔ)空間的 大小是確定的,就是現(xiàn)有矩形的個(gè)數(shù),所W該方案能大幅度提高有限的存儲(chǔ)空間的利用率, 而且每次計(jì)算結(jié)果不會(huì)產(chǎn)生沖突現(xiàn)象。
【附圖說明】
[0026] 圖1為本發(fā)明的屏幕上的矩形圖片分布的示例圖;
[0027] 圖2為本發(fā)明的坐標(biāo)系的示意圖。
【具體實(shí)施方式】
[0028] W下結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步說明。
[0029] -種矩形圖形識(shí)別散列定位方法,用于屏幕的矩形區(qū)域操作選擇,其特征在于:
[0030] 步驟A1:獲取屏幕的矩形圖形庫中矩形圖形的數(shù)量;
[0031] 步驟A2:獲取屏幕的矩形圖形庫中的每個(gè)矩形的其中一對(duì)對(duì)角的X軸和Y軸坐標(biāo);
[0032] 步驟A3:將獲取的每個(gè)矩形的一對(duì)對(duì)角的X軸和Y軸坐標(biāo)分別按照從小到大或者從 大到小的順序排列,并分別W線性表的形式表示;
[0033] 步驟A4:取得點(diǎn)擊的點(diǎn)的坐標(biāo);
[0034] 步驟A5:采用二分查找法將所選取的點(diǎn)的X軸坐標(biāo)和Y軸坐標(biāo)單獨(dú)依次分別與每個(gè) 矩形的兩個(gè)對(duì)角的X軸坐標(biāo)和Y軸坐標(biāo)進(jìn)行比較,排除所選取的點(diǎn)不能坐落的矩形;
[0035] 步驟A6:經(jīng)A5步驟留下的矩形的個(gè)數(shù)表示為所選的點(diǎn)落在屏幕的矩形圖形庫中的 矩形個(gè)數(shù),當(dāng)剩余的矩形的個(gè)數(shù)為1時(shí)表示所選的點(diǎn)唯一落在運(yùn)一矩形內(nèi)即選擇運(yùn)一矩形 區(qū)域,當(dāng)剩余的矩形的個(gè)數(shù)大于1時(shí)則選取剩余的矩形中位于最上層的矩形作為所選的點(diǎn) 坐落的矩形即選擇該矩形區(qū)域,當(dāng)剩余的矩形的個(gè)數(shù)小于1時(shí)則表示沒有任何一個(gè)矩形區(qū) 域被選中。
[0036] 其進(jìn)一步的,選取矩形圖形庫每個(gè)矩形的左上角的X軸和Y軸坐標(biāo)和右下角的X軸 和Y軸坐標(biāo),其比較方法如下:
[0037] 步驟B1:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與每個(gè)矩形的左上角的X軸坐 標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)大于等于矩形的左上角的X軸坐標(biāo)表示所選取的點(diǎn)可能落 在對(duì)應(yīng)矩形內(nèi),排除左上角的X軸坐標(biāo)大于所選取點(diǎn)的X坐標(biāo)的矩形;
[0038] 步驟B2:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下的每個(gè)矩 形的左上角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)大于等于矩形的左上角的Y軸坐標(biāo)表 示所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除左上角的Y軸坐標(biāo)大于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0039] 步驟B3:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的右下角的X軸坐標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)小于等于矩形的右下角的X軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi),排除右下角的X軸坐標(biāo)小于所選取點(diǎn)的X坐標(biāo)的矩形;
[0040] 步驟B4:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的右下角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)小于等于矩形的右下角的Y軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除右下角的Y軸坐標(biāo)小于所選取點(diǎn)的Y坐標(biāo)的矩形; [0041 ] 步驟B1、步驟B2、步驟B3、步驟B4的進(jìn)行次序可W兩兩互換;
[0042] 其進(jìn)一步的,選取矩形圖形庫每個(gè)矩形的左下角的X軸和Y軸坐標(biāo)和右上角的X軸 和Y軸坐標(biāo),其比較方法如下:
[0043] 步驟C1:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與每個(gè)矩形的左下角的X軸坐 標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)大于等于矩形的左下角的X軸坐標(biāo)表示所選取的點(diǎn)可能落 在對(duì)應(yīng)矩形內(nèi),排除左下角的X軸坐標(biāo)大于所選取點(diǎn)的X坐標(biāo)的矩形;
[0044] 步驟C2:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的左下角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)小于等于矩形的左下角的Y軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除左下角的Y軸坐標(biāo)小于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0045] 步驟C3:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形 的右上角的X軸坐標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)小于等于矩形的右上角的X軸坐標(biāo)表示 所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi),排除右上角的X軸坐標(biāo)小于所選取點(diǎn)的X坐標(biāo)的矩形;
[0046] 步驟C4:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下的每個(gè)矩 形的右上角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)大于等于矩形的右上角的Y軸坐標(biāo)表 示所選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除右上角的Y軸坐標(biāo)大于所選取點(diǎn)的Y坐標(biāo)的矩形;
[0047] 步驟C1、步驟C2、步驟C3、步驟C4的進(jìn)行的次序可W兩兩互換。
[004引實(shí)施例1:假設(shè)存在圖形集合G={Gl,G2,G3,…,Gi,…,Gn},其中n為現(xiàn)有圖形的個(gè) 數(shù),并且1 y如。集合G中Gi均^知1'1,¥1'1,乂81,¥81點(diǎn)〉五元組的形式存儲(chǔ),其中乂1'滿¥1'1分 另IJ為圖形Gi的左上角的X和y坐標(biāo)值。XBi和YBi分別為圖形Gi的右下角的X和y坐標(biāo)值。C功圖 形Gi所處的層次數(shù),當(dāng)圖形Gi遮蓋其他圖形位于最上面的時(shí)候。=1,即最上層。=1,并從 上往下Ci依次分別為2、3、4、…、k、---、n。其中1 <k<n。
[0049] 另外,設(shè)立W下四個(gè)線性表分別按照乂1'1、¥1'1^81、¥81從小到大的序列存儲(chǔ)1值。注 意,原點(diǎn)(〇,〇)在左上方,坐標(biāo)系見附圖2所示。
[0050] Lxt = <pi,p2,p3,...嘶,...口。〉,其中
!<./< 巧。
[0051] Vt = <qi,q2,q3,...,9:|,...9?!担?
1 < ./< "。
[0052] Lxb = <si,S2,S3,...,Sj,...Sn〉,其中
,
[0053] I^yb = <tl,t2,t3,...,tj,...tn〉,,其中
1 < ./ < /7 <,
[0054] 最后設(shè)立臨時(shí)圖形集合GT=G。
[0055] 當(dāng)用戶在界面上點(diǎn)擊某個(gè)矩形之后,根據(jù)點(diǎn)擊的坐標(biāo)(x,y)計(jì)算散列函數(shù)f(x,y) =i〇
[0056] 散列函數(shù)f(x,y)具體識(shí)別計(jì)算過程如下所示:
[0057] (1)系統(tǒng)首先取得點(diǎn)擊的坐標(biāo)(x,y)。
[005引(2)在Lxt線性表中利用二分查找算法定位X < 的最小W值,令該最小W值為 Pm,1如如。執(zhí)行
癢中Lxt ( i )為取得Lxt線性表 中第i個(gè)值,1 < i < η。如果Pm不存在或者pm>n,則跳過運(yùn)一步。
[0059] (3)在Lyt線性表中利用二分查找算法定位y < >7;,,的最小^值,令該最小W值為 qm,l <m<n。執(zhí)行
其中^t(i)為取得心*線性表中 第i個(gè)值,1 < i < η。如果qm不存在或者qm>n,則跳過運(yùn)一步。
[0060] (4)在Lxb線性表中利用二分查找算法定位y > 的最大3^直,令該最大直為 Sm,l 執(zhí)行
.其中Lxb(i)為取得Lxb線性表中第 i個(gè)值,1 < i < η。如果Sm不存在,現(xiàn)J跳過運(yùn)一步。
[0061] (5)在^6線性表中利用二分查找算法定位巧/的最大*^直,令該最大直為 tm,1 ^ ^。執(zhí)行
,其中Lyb ( i )為取得Lyb線性表中第 i個(gè)值,1 < i < η。如果U不存在,現(xiàn)J跳過運(yùn)一步。
[0062] (6)令Count (GT)為集合GT中元素的個(gè)數(shù)。
[0063] 如果Count(GT) = 1,即GT= {Gi},則f (x,y) = i。
[0064] 如果Count(GT) >1,則f (x,y) =Min(GT),Min(GT)計(jì)算結(jié)果為集合GT中所有圖形 元素 Gi中最小Ci值所對(duì)應(yīng)的i值。
[00化]如果 Count(GT) <1,則f (x,y) = 0。
[0066] 如圖1所述的矩形圖片庫的圖形集合6=^,8,(:,0^},而各元素內(nèi)容如下:
[0067] A = <XTa,YTa,XBa,YBa,1〉= <101,93,155,133,1〉
[0068] B = <XTb,YTb,XBb,YBb,1〉= < 128,171,241,248,1〉
[0069] C = <XTc,YTc,XBc,YBc,l〉= <311,lll,377,161,l〉
[0070] D = <XTd,YTd,XBd,YBd,1〉= < 25 2,7 2,280,3 26,1〉
[0071 ] E = <XTe,YTe,X化,Y化,2〉= <90,50,292,354,2〉
[0072] 四個(gè)有序線性表內(nèi)容如下所示:
[0073] Lxt =巧,1,2,4,3〉
[0074] kt =巧,4,1,3,2〉
[0075] Lxb = <l,2,4,5,3〉
[0076] kb = <l,3,2,4,5〉
[0077] 最后初始化 GT=G={A,B,C,D,E}。
[0078] 假設(shè)用戶點(diǎn)擊了坐標(biāo)(218,224),即(x,y) = (218,224),計(jì)算f (218,224)過程如 下:
[0079] (1)系統(tǒng)首先取得點(diǎn)擊的坐標(biāo)(218,224)。
[0080] (2)在Lxt線性表中利用二分查找算法定位滿足21S<-V7;條件的最小W值為4,即 尤Γα, = 252。執(zhí)行GT=GT- {C,D} = {A,B,E}。
[0081 ] (3)在^*線性表中發(fā)現(xiàn)qm不存在,則跳過運(yùn)一步。
[0082] (4)在Lxb線性表中利用二分查找算法定位滿足218 馬,的最大3^直為1,即 X公、.=155。執(zhí)行GT=GT-{A} = {A,B,E}-{A} = {B,E}。
[0083] (5)在Lyb線性表中利用二分查找算法定位滿足224 >KA條件的最大直為2,即 y公,.=化1。執(zhí)行GT=GT-{A,C} = {B,E}-{A,C} = {B,E}。
[0084] (6)計(jì)算Count(GT) = 2。由于Count(GT) >1,則f (x,y) =Min(GT) = 2。
[0085] 經(jīng)過W上計(jì)算,得到當(dāng)前選擇的圖形為圖形集合6=^,8,(:,0,6}中存儲(chǔ)位置為2 的B矩形區(qū)域。
[0086] 實(shí)施例2:假設(shè)存在圖形集合G={Gl,G2,G3,…,Gi,…,Gn},其中n為現(xiàn)有圖形的個(gè) 數(shù),并且1 y如。集合G中Gi均^知1'1,¥1'1,乂81,¥81點(diǎn)〉五元組的形式存儲(chǔ),其中乂1'滿¥1'1分 另IJ為圖形Gi的左下角的X和y坐標(biāo)值。XBi和YBi分別為圖形Gi的右上角的X和y坐標(biāo)值。C功圖 形Gi所處的層次數(shù),當(dāng)圖形Gi遮蓋其他圖形位于最上面的時(shí)候。=1,即最上層。=1,并從 上往下Ci依次分別為2、3、4、…、k、---、n。其中1 <k<n。
[0087]另外,設(shè)立W下四個(gè)線性表分別按照XTi、YTi、XBi、YBi從小到大的序列存儲(chǔ)i值。注 意,原點(diǎn)(〇,〇)在左下方,坐標(biāo)系見附圖2所示。
[0092]最后設(shè)立臨時(shí)圖形集合GT=G。
[0093] 當(dāng)用戶在界面上點(diǎn)擊某個(gè)矩形之后,根據(jù)點(diǎn)擊的坐標(biāo)(x,y)計(jì)算散列函數(shù)f(x,y) =i〇
[0094] 散列函數(shù)f(x,y)具體識(shí)別計(jì)算過程如下所示:
[0095] (1)系統(tǒng)首先取得點(diǎn)擊的坐標(biāo)(x,y)。
[0096] (2)在Lxt線性表中利用二分查找算法定位X < 的最小W值,令該最小W值為 Pm,l ^含η;執(zhí)行
其中Lxt(i)為取得Lxt線性表 中第i個(gè)值,1 < i < η。如果Pm不存在或者pm+l>n,則跳過運(yùn)一步。
[0097] (3)在Lyt線性表中利用二分查找算法定位少<>^,的最大q遍,令該最小q遍為 qm,1 ^ ^;執(zhí)行 <
其中(i)為取得線性表中第 i個(gè)值,1 < i < η。如果qm不存在或者qm>n,則跳過運(yùn)一步。
[0098] (4)在Lxb線性表中利用二分查找算法定位的最大3^直,令該最大直為 Sm,l 執(zhí)行
.其中Lxb(i)為取得Lxb線性表中第 i個(gè)值,1 < i < η。如果Sm不存在,現(xiàn)J跳過運(yùn)一步。
[0099] (5)在^6線性表中利用二分查找算法定位火的最大*^直,令該最大直為 U,1 ^ ^;執(zhí)行I
其中Lyb (i)為取得l^yb線性表 中第i個(gè)值,1 < i <n。如果tm不存在,現(xiàn)J跳過運(yùn)一步。
[0100] (6)令Count(GT)為集合GT中元素的個(gè)數(shù)。
[0101 ]如果Count(GT) = 1,即GT= {Gi},貝ijf (x,y) = i。
[0102] 如果Count(GT) >1,則f (x,y) =Min(GT),Min(GT)計(jì)算結(jié)果為集合GT中所有圖形 元素 Gi中最小Ci值所對(duì)應(yīng)的i值。
[0103] 如圖1所述的矩形圖片庫的圖形集合6=^,8,(:,0^},而各元素內(nèi)容如下:
[0104] A = <XTa,YTa,XBa,YBa,1〉= <101,133,155,93,1〉
[0105] B = <XTb,YTb,XBb,YBb,1〉= <128,248,241,171,1>
[0106] C = <XTc,YTc,XBc,YBc,l〉= <311,161,377,lll,l〉
[0107] D = <XTd,YTd,XBd,YBd,1〉= <252,326,280,72,1>
[010 引 E = <XTe,YTe,X^,Y^,2〉= <90,354,292,50,2〉
[0109] 四個(gè)有序線性表內(nèi)容如下所示:
[0110] Lxt =巧,1,2,4,3〉
[0111] kt = <l,3,2,4,5〉
[0112] Lxb = <l,2,4,5,3〉
[0113] kb =巧,4,1,3,2〉
[0114] 最后初始化 GT=G={A,B,C,D,E}。
[0115] 假設(shè)用戶點(diǎn)擊了坐標(biāo)(218,224),即(x,y) = (218,224),計(jì)算f(218,224)過程如 下:
[0116] (1)系統(tǒng)首先取得點(diǎn)擊的坐標(biāo)(218,224)。
[0117] (2)在Ut線性表中利用二分查找算法定位218<A7',.,的最小直為4,即 義7;。= 252。執(zhí)行g(shù)t=GT-{C,D} = {A,B,E}。
[011引(3)在心*線性表中利用二分查找算法定位的最小直為2,即= 248。 執(zhí)行 GT=GT-{A,C} = {A,B,E}-{A,C} = {B,E}。
[0119] (4)在Lxb線性表中利用二分查找算法定位的最大直為1。執(zhí)行6了 = 61'- {A} = {A,B,E}-{A} = {B,E}。
[0120] (5)在^6線性表中利用二分查找算法定位224 ^ Κδ,的最大tj值為5。執(zhí)行6了 = 61'- {} = {Β,Ε}-Π = {Β,Ε}。
[0121 ] (6)計(jì)算Count(GT) = 2。由于Count(GT)>l,則f (x,y) =Min(GT) = 2。
[0122] 經(jīng)過W上計(jì)算,得到當(dāng)前選擇的圖形為圖形集合6=^,8,(:,0,6}中存儲(chǔ)位置為2 的B矩形區(qū)域。
[0123] 在很多如何識(shí)別圖形是否被選擇的方法中,存在使用背景色相區(qū)別的方法。在運(yùn) 種方法中,各個(gè)圖形的背景顏色不同,用戶使用鼠標(biāo)點(diǎn)擊某個(gè)區(qū)域之后,系統(tǒng)根據(jù)被點(diǎn)擊區(qū) 域的背景顏色進(jìn)行判斷哪個(gè)圖形被選擇。該方法只適合于某些圖形背景顏色不同的場(chǎng)合, 如在地圖上進(jìn)行選擇區(qū)域。本發(fā)明的方法可W有效解決該方法不能廣泛使用的問題。
[0124] 在本發(fā)明提出的運(yùn)種方法中,由于采用了集合相減、淘汰的總體思路,無需每一個(gè) 圖形的信息都進(jìn)行詳細(xì)地比較,所W大大加快了識(shí)別的速度和效率。在進(jìn)行集合相減過程 之前,本方法使用了二分查找的思路,使得定位速度大幅度提高。
[01巧]如果在選取之后逐個(gè)比較每個(gè)圖形的坐標(biāo)信息,平均比較次數(shù)巧
,采 用本發(fā)明提出的方法在鼠標(biāo)點(diǎn)擊之后進(jìn)行的平均比較次數(shù)巧
。從 W下表格的比較可W看出隨著η的增長(zhǎng),P2的增長(zhǎng)幅度明顯小于Pi,運(yùn)就意味著伴隨著圖形 集合G的元素個(gè)數(shù)η的增長(zhǎng),本發(fā)明提出的方法具有非常明顯優(yōu)越的執(zhí)行效率,η值越大優(yōu)越 性越明顯。在圖形個(gè)數(shù)達(dá)到一定數(shù)量的時(shí)候,本方法能更快地識(shí)別出被選擇的圖形。
[0126]下表為增長(zhǎng)情況比較。 「01771
[0128]采用其他傳統(tǒng)的散列函數(shù)識(shí)別實(shí)際點(diǎn)擊的矩形區(qū)域時(shí)計(jì)算得到的存儲(chǔ)地址不是 連續(xù)的,必然存在存儲(chǔ)空間的極大浪費(fèi),而本發(fā)明提出的散列函數(shù)需要的實(shí)際存儲(chǔ)空間的 大小是確定的,就是現(xiàn)有矩形的個(gè)數(shù)n,如圖1所述的圖形集合的線性表只需要1、2、3、4、5個(gè) 連續(xù)的地址,而傳統(tǒng)的散列函數(shù)存儲(chǔ)的地址可W是諸如1、4、7、12、20運(yùn)樣不連續(xù)的地址,占 用20個(gè)存儲(chǔ)地址對(duì)存儲(chǔ)空間的極大浪費(fèi),該方案能大幅度提高有限的存儲(chǔ)空間的利用率, 而且每次計(jì)算結(jié)果不會(huì)產(chǎn)生沖突現(xiàn)象。
【主權(quán)項(xiàng)】
1. 一種矩形圖形識(shí)別散列定位方法,用于屏幕的矩形區(qū)域操作選擇,其特征在于: 步驟A1:獲取屏幕的矩形圖形庫中矩形圖形的數(shù)量; 步驟A2:獲取屏幕的矩形圖形庫中的每個(gè)矩形的其中一對(duì)對(duì)角的X軸和Y軸坐標(biāo); 步驟A3:將獲取的每個(gè)矩形的一對(duì)對(duì)角的X軸和Y軸坐標(biāo)分別按照從小到大或者從大到 小的順序排列,并分別以線性表的形式表不; 步驟A4:取得點(diǎn)擊的點(diǎn)的坐標(biāo); 步驟A5:采用二分查找法將所選取的點(diǎn)的X軸坐標(biāo)和Y軸坐標(biāo)單獨(dú)依次分別與每個(gè)矩形 的兩個(gè)對(duì)角的X軸坐標(biāo)和Y軸坐標(biāo)進(jìn)行比較,排除所選取的點(diǎn)不能坐落的矩形; 步驟A6:經(jīng)A5步驟留下的矩形的個(gè)數(shù)表示為所選的點(diǎn)落在屏幕的矩形圖形庫中的矩形 個(gè)數(shù),當(dāng)剩余的矩形的個(gè)數(shù)為1時(shí)表示所選的點(diǎn)唯一落在這一矩形內(nèi)即選擇這一矩形區(qū)域, 當(dāng)剩余的矩形的個(gè)數(shù)大于1時(shí)則選取剩余的矩形中位于最上層的矩形作為所選的點(diǎn)作落的 矩形即選擇該矩形區(qū)域,當(dāng)剩余的矩形的個(gè)數(shù)小于1時(shí)則表示沒有矩形區(qū)域被選中。2. 根據(jù)權(quán)利要求1所述的一種矩形圖形識(shí)別散列定位方法,其特征在于:選取矩形圖形 庫每個(gè)矩形的左上角的X軸和Y軸坐標(biāo)和右下角的X軸和Y軸坐標(biāo),其比較方法如下: 步驟B1:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與每個(gè)矩形的左上角的X軸坐標(biāo)比 較,所選取的點(diǎn)的X軸的坐標(biāo)大于等于矩形的左上角的X軸坐標(biāo)表示所選取的點(diǎn)可能落在對(duì) 應(yīng)矩形內(nèi),排除左上角的X軸坐標(biāo)大于所選取點(diǎn)的X坐標(biāo)的矩形; 步驟B2:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下的每個(gè)矩形的 左上角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)大于等于矩形的左上角的Y軸坐標(biāo)表示所 選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除左上角的Y軸坐標(biāo)大于所選取點(diǎn)的Y坐標(biāo)的矩形; 步驟B3:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形的右 下角的X軸坐標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)小于等于矩形的右下角的X軸坐標(biāo)表示所選 取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi),排除右下角的X軸坐標(biāo)小于所選取點(diǎn)的X坐標(biāo)的矩形; 步驟B4:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形的右 下角的Y軸坐標(biāo)比較,所選取的點(diǎn)的Y軸的坐標(biāo)小于等于矩形的右下角的Y軸坐標(biāo)表示所選 取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除右下角的Y軸坐標(biāo)小于所選取點(diǎn)的Y坐標(biāo)的矩形。3. 根據(jù)權(quán)利要求2所述的一種矩形圖形識(shí)別散列定位方法,其特征在于:步驟B1、步驟 B2、步驟B3、步驟Μ的進(jìn)行次序可以兩兩互換。4. 根據(jù)權(quán)利要求1所述的一種矩形圖形識(shí)別散列定位方法,其特征在于:選取矩形圖形 庫每個(gè)矩形的左下角的X軸和Υ軸坐標(biāo)和右上角的X軸和Υ軸坐標(biāo),其比較方法如下: 步驟C1:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與每個(gè)矩形的左下角的X軸坐標(biāo)比 較,所選取的點(diǎn)的X軸的坐標(biāo)大于等于矩形的左下角的X軸坐標(biāo)表示所選取的點(diǎn)可能落在對(duì) 應(yīng)矩形內(nèi),排除左下角的X軸坐標(biāo)大于所選取點(diǎn)的X坐標(biāo)的矩形; 步驟C2:采用二分查找法將所選取的點(diǎn)的Υ軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形的左 下角的Υ軸坐標(biāo)比較,所選取的點(diǎn)的Υ軸的坐標(biāo)小于等于矩形的左下角的Υ軸坐標(biāo)表示所選 取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除左下角的Υ軸坐標(biāo)小于所選取點(diǎn)的Υ坐標(biāo)的矩形; 步驟C3:采用二分查找法將所選取的點(diǎn)的X軸的坐標(biāo)與經(jīng)上一步驟留下每個(gè)矩形的右 上角的X軸坐標(biāo)比較,所選取的點(diǎn)的X軸的坐標(biāo)小于等于矩形的右上角的X軸坐標(biāo)表示所選 取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi),排除右上角的X軸坐標(biāo)小于所選取點(diǎn)的X坐標(biāo)的矩形; 步驟C4:采用二分查找法將所選取的點(diǎn)的Y軸的坐標(biāo)與經(jīng)上一步驟留下的每個(gè)矩形的 右上角的Υ軸坐標(biāo)比較,所選取的點(diǎn)的Υ軸的坐標(biāo)大于等于矩形的左下角的Υ軸坐標(biāo)表示所 選取的點(diǎn)可能落在對(duì)應(yīng)矩形內(nèi);排除右上角的Υ軸坐標(biāo)大于所選取點(diǎn)的Υ坐標(biāo)的矩形。5.根據(jù)權(quán)利要求4所述的一種矩形圖形識(shí)別散列定位方法,其特征在于:步驟C1、步驟 C2、步驟C3、步驟C4的進(jìn)行次序可以兩兩互換。
【文檔編號(hào)】G06F9/44GK105824532SQ201610151280
【公開日】2016年8月3日
【申請(qǐng)日】2016年3月16日
【發(fā)明人】高振棟, 張春燕, 吳麗
【申請(qǐng)人】無錫科技職業(yè)學(xué)院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1