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

閉合區(qū)域的識別方法和裝置與流程

文檔序號:12826269閱讀:437來源:國知局
閉合區(qū)域的識別方法和裝置與流程

本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種閉合區(qū)域的識別方法和裝置。



背景技術(shù):

在日常生活、工作和學(xué)習(xí)的過程中,為了便于直觀生動(dòng)地表達(dá)圖像內(nèi)容,圖像填充被廣泛應(yīng)用。例如,當(dāng)老師繪制完幾何題目的圖形,需要計(jì)算該圖形中指定區(qū)域的面積時(shí),可使用填充功能以不同的顏色或花紋填充需要計(jì)算的區(qū)域,以達(dá)到提醒的效果?;蛘撸?dāng)設(shè)計(jì)師繪制完自己的圖形,需要填充顏色時(shí),可直接通過填充功能,在自己需要填充的區(qū)域填充相應(yīng)的顏色。

現(xiàn)有的圖形填充的技術(shù)方案,通常采用圖像識別技術(shù),將當(dāng)前繪制的內(nèi)容轉(zhuǎn)換為圖片內(nèi)容,通過圖像處理技術(shù)查找到圖片中的輪廓,然后通過填充點(diǎn)得到填充的輪廓,從而實(shí)現(xiàn)對圖形分塊填充。但是該方案需要對圖片中的每個(gè)像素點(diǎn)遍歷和判斷處理,運(yùn)算量巨大,也無法獲得準(zhǔn)確的矢量填充區(qū)域,而且由于獲得的填充塊為圖片,鋸齒很大,體驗(yàn)極差。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供了一種閉合區(qū)域的識別方法和裝置,以解決了繪圖工具無法準(zhǔn)確填充閉合區(qū)域并得到矢量填充塊的問題,能夠精準(zhǔn)確定繪制圖形的閉合區(qū)域,以實(shí)現(xiàn)對填充塊的精準(zhǔn)矢量填充。

第一方面,本發(fā)明實(shí)施例提供了一種閉合區(qū)域的識別方法,該方法包括:

獲取繪制圖形的特征點(diǎn)集,基于所述特征點(diǎn)集構(gòu)建無向圖;

獲取觸發(fā)點(diǎn)的坐標(biāo),根據(jù)所述觸發(fā)點(diǎn)的坐標(biāo)確定無向圖中的起始點(diǎn);

根據(jù)所述觸發(fā)點(diǎn)、所述起始點(diǎn)和所述無向圖,確定所述繪制圖形中的閉合區(qū)域。

第二方面,本發(fā)明實(shí)施例還提供了一種閉合區(qū)域的識別裝置,該區(qū)域包括:

無向圖構(gòu)建模塊,用于獲取繪制圖形的特征點(diǎn)集,基于所述特征點(diǎn)集構(gòu)建無向圖;

起始點(diǎn)確定模塊,用于獲取觸發(fā)點(diǎn)的坐標(biāo),根據(jù)所述觸發(fā)點(diǎn)的坐標(biāo)確定無向圖中的起始點(diǎn);

閉合區(qū)域確定模塊,用于根據(jù)所述觸發(fā)點(diǎn)、所述起始點(diǎn)和所述無向圖,確定所述繪制圖形中的閉合區(qū)域。

本發(fā)明實(shí)施例的技術(shù)方案,通過觸發(fā)點(diǎn)的坐標(biāo)以及基于繪制圖形的特征點(diǎn)集構(gòu)建的無向圖,確定無向圖中的起始點(diǎn),進(jìn)而根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖確定繪制圖形中的閉合區(qū)域,且不用確定繪制圖形中所有的閉合區(qū)域,根據(jù)觸發(fā)點(diǎn)有目的地獲取閉合區(qū)域,不僅解決了繪圖工具無法準(zhǔn)確填充閉合區(qū)域并得到矢量填充塊的問題,而且能夠高效、精準(zhǔn)確定繪制圖形的閉合區(qū)域,以實(shí)現(xiàn)對填充塊的精準(zhǔn)矢量填充。

附圖說明

為了更加清楚地說明本發(fā)明示例性實(shí)施例的技術(shù)方案,下面對描述實(shí)施例中所需要用到的附圖做一簡單介紹。顯然,所介紹的附圖只是本發(fā)明所要描述的一部分實(shí)施例的附圖,而不是全部的附圖,對于本領(lǐng)域普通技術(shù)人員,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖得到其他的附圖。

圖1為本發(fā)明實(shí)施例一所提供的一種閉合區(qū)域的識別方法的流程圖;

圖2為本發(fā)明實(shí)施例二所提供的一種閉合區(qū)域的識別方法的流程圖;

圖3為本發(fā)明實(shí)施例三所提供的一種閉合區(qū)域的識別裝置的結(jié)構(gòu)框圖。

具體實(shí)施方式

下面結(jié)合附圖并通過具體實(shí)施方式來進(jìn)一步說明本發(fā)明的技術(shù)方案。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。

在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各步驟的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。

實(shí)施例一

圖1為本發(fā)明實(shí)施例一所提供的一種閉合區(qū)域的識別方法的流程圖。如圖1所示,本實(shí)施例的方法可以由閉合區(qū)域的識別裝置來執(zhí)行,該裝置可通過硬件和/或軟件的方式實(shí)現(xiàn),并一般可獨(dú)立的配置在用戶終端的應(yīng)用端內(nèi)中實(shí)現(xiàn)本實(shí)施例的方法。

其中,應(yīng)用端可以為內(nèi)嵌于用戶終端中的某個(gè)客戶端的插件,或者為所述用戶終端的操作系統(tǒng)的插件,與內(nèi)嵌于用戶終端中的圖形繪制類客戶端(例如,畫圖軟件或圖形編輯器等)配合使用;應(yīng)用端也可以為所述用戶終端中一個(gè)獨(dú)立的可提供圖形繪制服務(wù)的客戶端,本實(shí)施例對此不進(jìn)行限制。

本實(shí)施例的方法具體包括:

s110、獲取繪制圖形的特征點(diǎn)集,基于特征點(diǎn)集構(gòu)建無向圖。

其中,繪制圖形的特征點(diǎn)可以是表征繪制圖形的各個(gè)連接點(diǎn),如各個(gè)圖形的頂點(diǎn)或者邊界點(diǎn),也可以是繪制圖形中圖形與圖形之間的交叉點(diǎn)等?;谔卣鼽c(diǎn)集構(gòu)建無向圖,可以是選取特征點(diǎn)集中的任意一個(gè)特征點(diǎn)作為起始點(diǎn),然后根據(jù)繪制圖形中各點(diǎn)之間的連接關(guān)系,構(gòu)建無向圖。具體地,可以是根據(jù)繪制圖形各對象的數(shù)學(xué)方程計(jì)算并記錄各對象之間所有交點(diǎn)的交點(diǎn)信息;所述交點(diǎn)信息包括交點(diǎn)坐標(biāo)和交點(diǎn)之間的路徑信息;基于所述交點(diǎn)信息構(gòu)建無向圖。根據(jù)數(shù)學(xué)方程計(jì)算出各交點(diǎn)的交點(diǎn)信息,不僅可以更精確地表征繪制圖形,尤其適用于在幾何教學(xué)中,實(shí)現(xiàn)對繪制圖形進(jìn)行區(qū)域面積、高或邊的長度等各種數(shù)學(xué)運(yùn)算,更加智能化。

s120、獲取觸發(fā)點(diǎn)的坐標(biāo),根據(jù)觸發(fā)點(diǎn)的坐標(biāo)確定無向圖中的起始點(diǎn)。

示例性地,觸發(fā)點(diǎn)可以為用戶通過輸入設(shè)備輸入的點(diǎn)或者選中的點(diǎn)。一般地,觸發(fā)點(diǎn)通常為用戶有意向通過觸發(fā)操作的控制觸發(fā)點(diǎn)或者觸發(fā)點(diǎn)所在區(qū)域,執(zhí)行于觸發(fā)操作相對應(yīng)的功能。因此在本實(shí)施例中,可以獲取觸發(fā)點(diǎn)的坐標(biāo),然后根據(jù)觸發(fā)點(diǎn)的坐標(biāo)確定無向圖中的起始點(diǎn)。

無向圖中可能存在閉合區(qū)域,也可能不存在閉合區(qū)域,在無向圖中存在閉合區(qū)域的情況下還可以是存在多個(gè)閉合區(qū)域。因此,為了準(zhǔn)確地獲取與觸發(fā)點(diǎn)相關(guān)的閉合區(qū)域,具體地,可以通過添加輔助線的方式,獲取觸發(fā)點(diǎn)在預(yù)設(shè)方向上與繪制圖形的交點(diǎn)中,距離觸發(fā)點(diǎn)最近的點(diǎn)作為起始點(diǎn)。進(jìn)一步地,可以是獲取觸發(fā)點(diǎn)的坐標(biāo),以觸發(fā)點(diǎn)為坐標(biāo)原點(diǎn),建立新的坐標(biāo)系,并在默認(rèn)坐標(biāo)系中計(jì)算所述新的坐標(biāo)系的坐標(biāo)軸與所述繪制圖形的交點(diǎn);分別計(jì)算出各個(gè)交點(diǎn)與觸發(fā)點(diǎn)所形成的向量的長度,將所述長度最小的點(diǎn)添加到所述無向圖中,作為所述無向圖中的起始點(diǎn)。

s130、根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖,確定繪制圖形中的閉合區(qū)域。

在本實(shí)施例中,確認(rèn)繪制圖形中的閉合區(qū)域可以理解為確認(rèn)與觸發(fā)點(diǎn)相關(guān)聯(lián)的最小封閉區(qū)域。首先可以根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖中各個(gè)交點(diǎn)以及各交點(diǎn)之間的路徑信息,逐個(gè)確定無向圖中與觸發(fā)點(diǎn)相關(guān)的可能構(gòu)成閉合區(qū)域的各個(gè)關(guān)鍵點(diǎn),進(jìn)而根據(jù)各關(guān)鍵點(diǎn)以及預(yù)設(shè)的規(guī)則確定繪制圖形中的閉合區(qū)域。

具體地,根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖,確定繪制圖形中的閉合區(qū)域可以是,獲取起始點(diǎn)在無向圖中能夠直接到達(dá)的相鄰點(diǎn)為關(guān)鍵點(diǎn),然后根據(jù)起始點(diǎn)、關(guān)鍵點(diǎn)和觸發(fā)點(diǎn)確定旋轉(zhuǎn)方向;進(jìn)而獲取該關(guān)鍵點(diǎn)沿該旋轉(zhuǎn)方向能夠直接到達(dá)的相鄰點(diǎn)中與觸發(fā)點(diǎn)距離最近的相鄰點(diǎn),確認(rèn)為新的關(guān)鍵點(diǎn)。依次類推,直至新確認(rèn)的關(guān)鍵點(diǎn)找不到相鄰點(diǎn)或者新確認(rèn)的關(guān)鍵點(diǎn)與第一個(gè)關(guān)鍵點(diǎn)重合為止。當(dāng)然,若該關(guān)鍵點(diǎn)沿該旋轉(zhuǎn)方向不存在相鄰點(diǎn),則獲取該關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向的反方向能夠直接到達(dá)的相鄰點(diǎn)中,以當(dāng)前關(guān)鍵點(diǎn)為起點(diǎn)繞觸發(fā)點(diǎn)旋轉(zhuǎn)角度值最小的相鄰點(diǎn),確認(rèn)為關(guān)鍵點(diǎn)。

本實(shí)施例的技術(shù)方案,通過觸發(fā)點(diǎn)的坐標(biāo)以及基于繪制圖形的特征點(diǎn)集構(gòu)建的無向圖,確定無向圖中的起始點(diǎn),進(jìn)而根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖確定繪制圖形中的閉合區(qū)域,且不用確定繪制圖形中所有的閉合區(qū)域,根據(jù)觸發(fā)點(diǎn)有目的地獲取閉合區(qū)域,不僅解決了繪圖工具無法準(zhǔn)確填充閉合區(qū)域并得到矢量填充塊的問題,而且能夠高效、精準(zhǔn)確定繪制圖形的閉合區(qū)域,以實(shí)現(xiàn)對填充塊的精準(zhǔn)矢量填充。

實(shí)施例二

圖2為本發(fā)明實(shí)施例二所提供的一種閉合區(qū)域的識別方法的流程圖,如圖2所示,本實(shí)施例在上述各實(shí)施例的基礎(chǔ)上,可選是所述獲取繪制圖形的特征點(diǎn)集,基于所述特征點(diǎn)集構(gòu)建無向圖包括:根據(jù)繪制圖形各對象的數(shù)學(xué)方程計(jì)算并記錄各對象之間的交點(diǎn)信息;所述交點(diǎn)信息包括交點(diǎn)坐標(biāo)和交點(diǎn)之間的路徑信息;基于所述交點(diǎn)信息構(gòu)建無向圖。

在上述技術(shù)方案的基礎(chǔ)上,進(jìn)一步地所述獲取觸發(fā)點(diǎn)的坐標(biāo),根據(jù)所述觸發(fā)點(diǎn)的坐標(biāo)確定無向圖中的起始點(diǎn)具體可包括:獲取觸發(fā)點(diǎn)的坐標(biāo),以觸發(fā)點(diǎn)為坐標(biāo)原點(diǎn),建立新的坐標(biāo)系,并在默認(rèn)坐標(biāo)系中計(jì)算所述新的坐標(biāo)系的坐標(biāo)軸與所述繪制圖形的交點(diǎn);分別計(jì)算出各個(gè)交點(diǎn)與觸發(fā)點(diǎn)所形成的向量的長度,將所述長度最小的點(diǎn)添加到所述無向圖中,作為所述無向圖中的起始點(diǎn)。

進(jìn)一步地,根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖,確定繪制圖形中的閉合區(qū)域可選是包括:將起始點(diǎn)在無向圖中的任一能夠直接到達(dá)的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn),確定起始點(diǎn)到關(guān)鍵點(diǎn)的向量繞觸發(fā)點(diǎn)的旋轉(zhuǎn)方向;獲取新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合,判斷備用關(guān)鍵點(diǎn)集合是否為空,備用關(guān)鍵點(diǎn)集合不包括前一個(gè)確認(rèn)的關(guān)鍵點(diǎn);若備用關(guān)鍵點(diǎn)集合不為空,則計(jì)算出備用關(guān)鍵點(diǎn)集合中與觸發(fā)點(diǎn)距離最近的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn);若備用關(guān)鍵點(diǎn)集合為空,則獲取新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向的反方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合;判斷備用關(guān)鍵點(diǎn)集合是否為空;若根據(jù)旋轉(zhuǎn)方向的反方向確認(rèn)的備用關(guān)鍵點(diǎn)集合不為空,則計(jì)算出備用關(guān)鍵點(diǎn)集合中以當(dāng)前關(guān)鍵點(diǎn)為起點(diǎn)繞觸發(fā)點(diǎn)旋轉(zhuǎn)角度值最小的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn);判斷新確認(rèn)的關(guān)鍵點(diǎn)是否與第一個(gè)關(guān)鍵點(diǎn)重合,若是,則根據(jù)關(guān)鍵點(diǎn)確認(rèn)閉合區(qū)域,否則繼續(xù)獲取新確認(rèn)的關(guān)鍵點(diǎn)的備用關(guān)鍵點(diǎn)集合。

具體地,本實(shí)施例的方法包括:

s201、根據(jù)繪制圖形各對象的數(shù)學(xué)方程計(jì)算并記錄各對象之間的交點(diǎn)信息。

示例性地,繪制圖形各對象可以是繪制圖形中各直線、橢圓和/或貝塞爾曲線等;繪制圖形各對象的數(shù)學(xué)方程例如可以是直線方程、橢圓的方程和/或貝塞爾曲線的方程等。根據(jù)繪制圖形各對象的數(shù)學(xué)方程能夠計(jì)算出各對象之間所有交點(diǎn)的交點(diǎn)信息,得到交點(diǎn)信息的集合。其中,交點(diǎn)信息包括交點(diǎn)坐標(biāo)和交點(diǎn)之間的路徑信息。交點(diǎn)之間的路徑信息可以理解為經(jīng)過此交點(diǎn)的對象(直線、橢圓和/或貝塞爾曲線等)。可以理解的是,繪制圖形中各圖形的數(shù)學(xué)方程和各交點(diǎn)的坐標(biāo)是隨著坐標(biāo)系的變化而變化的,用戶可以根據(jù)實(shí)際需求預(yù)先建立好坐標(biāo)系,坐標(biāo)系可以是平面直角坐標(biāo)系,也可以空間直角坐標(biāo)系,坐標(biāo)系的原點(diǎn)也可以根據(jù)實(shí)際情況設(shè)置,在此并不做限定。

為了不重復(fù)的記錄各交點(diǎn),并有效地記錄各交點(diǎn)的路徑信息,可以將坐標(biāo)相同的交點(diǎn),合并為一個(gè)交點(diǎn)信息。例如:存在交點(diǎn)信息p1((0,0)(l1,l2)),表示對象l1與對象l2相交于(0,0),如果對象l1與對象l3也相交于(0,0),則將交點(diǎn)信息合并至p1,此時(shí)p1為((0,0)(l1,l2,l3))。這樣記錄的好處在于,還可以有效的減少后期的計(jì)算量,提高計(jì)算效率。

s202、基于交點(diǎn)信息構(gòu)建無向圖。

在本操作中,可以選取任一交點(diǎn)作為起始點(diǎn),然后根據(jù)該交點(diǎn)的坐標(biāo)以及該交點(diǎn)與各交點(diǎn)之間的路徑信息,構(gòu)建無向圖。具體地,根據(jù)獲得交點(diǎn)信息的集合p,遍歷p,將所有在同一個(gè)對象上的交點(diǎn)歸類到一個(gè)集合中,得到每個(gè)對象和在此對象上的點(diǎn)的信息列表pi。例如,p中在l1上的點(diǎn)的坐標(biāo)有(0,0)、(2,2)和(5,5),經(jīng)過歸類后就有{l1,{(0,0)(2,2)(5,5)}}。遍歷pi,將所有交點(diǎn)到相鄰交點(diǎn)的路徑信息記錄下來,并將相同信息合并,以各交點(diǎn)為頂點(diǎn),各交點(diǎn)之間的路徑信息為邊,構(gòu)建無向圖g。

s203、獲取觸發(fā)點(diǎn)的坐標(biāo),以觸發(fā)點(diǎn)為坐標(biāo)原點(diǎn),建立新的坐標(biāo)系,并在默認(rèn)坐標(biāo)系中計(jì)算所新的坐標(biāo)系的坐標(biāo)軸與繪制圖形的交點(diǎn)。

示例性地,觸發(fā)點(diǎn)可以是用戶鼠標(biāo)的所點(diǎn)擊的點(diǎn)m,獲取觸發(fā)點(diǎn)的坐標(biāo)即獲取觸發(fā)點(diǎn)在默認(rèn)坐標(biāo)系中的坐標(biāo),然后以觸發(fā)點(diǎn)m為中心,做平行于默認(rèn)坐標(biāo)系的坐標(biāo)軸的新的坐標(biāo)軸,以建立新的坐標(biāo)系。具體地,若默認(rèn)坐標(biāo)系位平面直角坐標(biāo)系,則可以m為中心,做平行于x軸和y軸的兩條線m1和m2,建立新的坐標(biāo)系。具體地,在默認(rèn)坐標(biāo)系中計(jì)算所新的坐標(biāo)系的坐標(biāo)軸與繪制圖形的交點(diǎn)可以是,在默認(rèn)坐標(biāo)系中,可根據(jù)繪制圖形各對象的數(shù)學(xué)方程(如直線方程,橢圓的方程,貝塞爾曲線的方程等)計(jì)算出各對象與新坐標(biāo)系的坐標(biāo)軸m1、m2的所有交點(diǎn),并記錄在集合mp中。

s204、分別計(jì)算出各個(gè)交點(diǎn)與觸發(fā)點(diǎn)所形成的向量的長度,將長度最小的點(diǎn)添加到無向圖中,作為無向圖中的起始點(diǎn)。

如上所述,可以遍歷mp中的點(diǎn),計(jì)算出mp中各個(gè)交點(diǎn)與觸發(fā)點(diǎn)m所形成的向量的長度最小的點(diǎn)s,并將s的信息添加到無向圖g中,作為無向圖中的起始點(diǎn)。其中,向量長度為形成向量的兩點(diǎn)的距離,即交點(diǎn)與觸發(fā)點(diǎn)之間的距離。

s205、將起始點(diǎn)在無向圖中的任一能夠直接到達(dá)的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn)。

具體地,根據(jù)無向圖g,可以得到起始點(diǎn)s的相鄰點(diǎn)的點(diǎn)集sn。其中,相鄰點(diǎn)即起始點(diǎn)s在無向圖g中不經(jīng)過其它的點(diǎn)直接到達(dá)的點(diǎn)。可以在sn中取任意一個(gè)相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn)s1。進(jìn)一步地,可將s1添加到記錄表ls中,并在sn中刪除s1。

s206、確定起始點(diǎn)到關(guān)鍵點(diǎn)的向量繞觸發(fā)點(diǎn)的旋轉(zhuǎn)方向。

在本實(shí)施例中,具體可以是連接起始點(diǎn)、關(guān)鍵點(diǎn)和觸發(fā)點(diǎn)得到三角形,以起始點(diǎn)s到關(guān)鍵點(diǎn)s1的向量的方向,作為旋轉(zhuǎn)方向f。其中,旋轉(zhuǎn)方向?yàn)轫槙r(shí)針或逆時(shí)針。

s207、獲取新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合。

由于要確認(rèn)閉合區(qū)域,因此可以根據(jù)確認(rèn)好的旋轉(zhuǎn)方向去確認(rèn)可能與關(guān)鍵點(diǎn)組成閉合區(qū)域的備用關(guān)鍵點(diǎn)??紤]到針對繪制圖形的差異性,以及選擇的關(guān)鍵點(diǎn)的不同,往往不確定新確認(rèn)的關(guān)鍵點(diǎn)是否存在相鄰點(diǎn),而且在復(fù)雜的繪制圖形中,關(guān)鍵點(diǎn)可能存在不止一個(gè)相鄰點(diǎn)。因此,為了根據(jù)觸發(fā)點(diǎn)確認(rèn)出最小的閉合區(qū)域,可獲取新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向能夠直接到達(dá)的所有的相鄰點(diǎn),構(gòu)成的備用關(guān)鍵點(diǎn)集合s1s。

s208、判斷備用關(guān)鍵點(diǎn)集合是否為空,若否,執(zhí)行s209;若是,執(zhí)行s210。

其中,備用關(guān)鍵點(diǎn)集合不包括前一個(gè)確認(rèn)的關(guān)鍵點(diǎn)。在實(shí)際的繪制圖形中,如上所述,關(guān)鍵點(diǎn)可能存在相鄰點(diǎn),也可以能不存在相鄰點(diǎn),因此需要判斷備用關(guān)鍵點(diǎn)集合是否為空,即判斷備用關(guān)鍵點(diǎn)集合s1s中是否存在相鄰點(diǎn)。

s209、計(jì)算出備用關(guān)鍵點(diǎn)集合中與觸發(fā)點(diǎn)距離最近的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn),執(zhí)行s213。

如果備用關(guān)鍵點(diǎn)集合s1s中具有點(diǎn),則計(jì)算出s1s中距離點(diǎn)m距離最近的相鄰點(diǎn)的信息,并將該相鄰點(diǎn)作為新的關(guān)鍵點(diǎn)。進(jìn)一步地,可以將該相鄰點(diǎn)記錄到記錄表ls中。因?yàn)橐鶕?jù)觸發(fā)點(diǎn)確認(rèn)最小的閉合區(qū)域,因此,選擇備用關(guān)鍵點(diǎn)集合中與觸發(fā)點(diǎn)距離最近的相鄰點(diǎn)??梢岳斫獾氖?,若備用關(guān)鍵點(diǎn)集合s1s中只有一個(gè)相鄰點(diǎn),則將該相鄰點(diǎn)作為與觸發(fā)點(diǎn)距離最近的相鄰點(diǎn)。

s210、獲取新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向的反方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合。

如果備用關(guān)鍵點(diǎn)集合s1s中不存在沿旋轉(zhuǎn)方向能夠直接到達(dá)的相鄰點(diǎn),則要獲取新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向f的反方向旋轉(zhuǎn)的相鄰點(diǎn)。

s211、判斷備用關(guān)鍵點(diǎn)集合是否為空,若否,執(zhí)行s212;若是,執(zhí)行s213。

可以理解的是,本操作中的備用關(guān)鍵點(diǎn)集合是指新確認(rèn)的關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向的反方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合。類似地,備用關(guān)鍵點(diǎn)集合不包括前一個(gè)確認(rèn)的關(guān)鍵點(diǎn)。判斷備用關(guān)鍵點(diǎn)集合是否為空的具體原因及相關(guān)操作與s208相似,在此不在贅述。

特殊地,若第一個(gè)關(guān)鍵點(diǎn)沿旋轉(zhuǎn)方向以及旋轉(zhuǎn)方向的反方向所確認(rèn)的備用關(guān)鍵點(diǎn)集合均為空時(shí),則確認(rèn)為不存在閉合區(qū)域,可直接輸出不存在閉合區(qū)域的提示信息。

s212、計(jì)算出備用關(guān)鍵點(diǎn)集合中以當(dāng)前關(guān)鍵點(diǎn)為起點(diǎn)繞觸發(fā)點(diǎn)旋轉(zhuǎn)角度值最小的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn),執(zhí)行s213。

如果f為順時(shí)針,則計(jì)算出在備用關(guān)鍵點(diǎn)集合s1n中以關(guān)鍵點(diǎn)s1為起點(diǎn)繞觸發(fā)點(diǎn)m逆時(shí)針旋轉(zhuǎn)并且旋轉(zhuǎn)角度值最小的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn);如果f為逆時(shí)針,則計(jì)算出在備用關(guān)鍵點(diǎn)集合s1n中以關(guān)鍵點(diǎn)s1為起點(diǎn)繞觸發(fā)點(diǎn)m順時(shí)針旋轉(zhuǎn)且旋轉(zhuǎn)角度值最小的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn)。進(jìn)一步地,可以將獲取的關(guān)鍵點(diǎn)記錄到記錄表ls中。

s213、判斷新確認(rèn)的關(guān)鍵點(diǎn)是否與第一個(gè)關(guān)鍵點(diǎn)重合,若否,執(zhí)行s214;若是,執(zhí)行s215。

通過判斷新確認(rèn)的關(guān)鍵點(diǎn)是否與第一個(gè)關(guān)鍵點(diǎn)重合,可以判斷出當(dāng)前確認(rèn)的關(guān)鍵點(diǎn)是否為閉合區(qū)域。例如具體可以是,判斷新確認(rèn)的關(guān)鍵點(diǎn)與記錄表ls中所記錄的第一個(gè)關(guān)鍵點(diǎn)是否一樣,即是否返回起點(diǎn)。

s214、繼續(xù)獲取新確認(rèn)的關(guān)鍵點(diǎn)的備用關(guān)鍵點(diǎn)集合,返回s206。

具體地,可以將起始點(diǎn)在無向圖中的能夠直接到達(dá)的新的相鄰點(diǎn)確認(rèn)為新確認(rèn)的關(guān)鍵點(diǎn),繼續(xù)獲取新確認(rèn)的關(guān)鍵點(diǎn)的備用關(guān)鍵點(diǎn)集合,以確認(rèn)閉合區(qū)域。需要說明的是,若遍歷起始點(diǎn)在無向圖中的能夠直接到達(dá)的所有的相鄰點(diǎn),仍然得出備用關(guān)鍵點(diǎn)集合為空,則輸出提示信息,提示用戶找不到閉合區(qū)域??梢岳斫獾氖?,如果取點(diǎn)時(shí)起始點(diǎn)在無向圖中的能夠直接到達(dá)的相鄰點(diǎn)的集合sn為空,說明遍歷集合sn中所有的點(diǎn)均無滿足形成閉合區(qū)域的點(diǎn),則可返回null,即不存在可填充的閉合區(qū)域。

s215、根據(jù)關(guān)鍵點(diǎn)確認(rèn)閉合區(qū)域。

將所確認(rèn)的各關(guān)鍵點(diǎn)以及各關(guān)鍵點(diǎn)之間的路徑轉(zhuǎn)換為閉合區(qū)域,例如具體可以是在記錄表ls中依次記錄符合上述記錄條件的各關(guān)鍵點(diǎn)的信息,其中,關(guān)鍵點(diǎn)的信息包括各關(guān)鍵點(diǎn)以及各關(guān)鍵點(diǎn)之間所在對象的數(shù)學(xué)方程,即各關(guān)鍵點(diǎn)以及各關(guān)鍵點(diǎn)之間的路徑信息。

需要說明的是,采用本發(fā)明實(shí)施例的技術(shù)方案,可能出現(xiàn)選擇不同的關(guān)鍵點(diǎn)或旋轉(zhuǎn)方向,所確認(rèn)的閉合區(qū)域不同的情況。無論確認(rèn)出哪個(gè)閉合區(qū)域,只要確認(rèn)出一個(gè)閉合區(qū)域即可。

在上述各個(gè)實(shí)施例的基礎(chǔ)上,可選地,在所述確定所述繪制圖形中的閉合區(qū)域之后,還包括:判斷所述觸發(fā)點(diǎn)是否處于所述閉合區(qū)域內(nèi),若是,則對所述閉合區(qū)域進(jìn)行填充;否則輸出提示信息。

其中,觸發(fā)點(diǎn)可以是通過輸入設(shè)備所觸發(fā)的點(diǎn)。示例性地,輸入設(shè)備可以是鼠標(biāo)、鍵盤以及觸控區(qū)等可以提供輸入操作或者控制光標(biāo)輸入的設(shè)備。觸發(fā)方式具體可以是點(diǎn)擊鼠標(biāo)、通過鍵盤或觸控區(qū)控制光標(biāo)等。舉例而言,在填充操作的過程中,當(dāng)鼠標(biāo)點(diǎn)擊后,獲得鼠標(biāo)點(diǎn)擊坐標(biāo)p1,識別p1是否在閉合區(qū)域內(nèi),如果識別到p1在閉合區(qū)域內(nèi),則根據(jù)該最小閉合區(qū)域的各個(gè)交點(diǎn)(或者邊界點(diǎn))和各交點(diǎn)的路徑信息,對該閉合區(qū)域進(jìn)行填充,輸出填充結(jié)果,顯示填充效果。由于識別到p1不在閉合區(qū)域中,如,選中的坐標(biāo)在繪制圖形的各對象上,或者說在兩個(gè)最小閉合區(qū)域的公共線上或與交點(diǎn)重合,或者選中的坐標(biāo)位于繪制圖形以外的區(qū)域等,則輸出提示信息。示例性地,提示信息可以是提醒用戶無法找到目標(biāo)填充區(qū)域的信息。

本實(shí)施例的技術(shù)方案,通過以觸發(fā)點(diǎn)以及關(guān)鍵點(diǎn)與觸發(fā)點(diǎn)的距離、與繞觸發(fā)點(diǎn)角度為參考選擇關(guān)鍵點(diǎn),能夠準(zhǔn)確獲取到與觸發(fā)點(diǎn)相關(guān)的最小的封閉區(qū)域作為目標(biāo)獲取的閉合區(qū)域,充分地考慮到用戶需求。而且不用遍歷繪制圖形中的所有交點(diǎn),通過繪制圖形各對象的數(shù)學(xué)方程確認(rèn)閉合區(qū)域,減少了計(jì)算成本,較為高效。尤其在填充操作中,能夠準(zhǔn)確得到矢量的填充區(qū)域,不管放大縮小,填充效果都較好。

實(shí)施例三

圖3所示為本發(fā)明實(shí)施例三所提供的一種閉合區(qū)域的識別裝置的結(jié)構(gòu)示意圖,該裝置可通過硬件和/或軟件的方式實(shí)現(xiàn),并一般可獨(dú)立的配置在用戶終端的應(yīng)用端內(nèi)實(shí)現(xiàn)本實(shí)施例的方法。如圖3所示,所述閉合區(qū)域的識別裝置具體包括:無向圖構(gòu)建模塊310、起始點(diǎn)確定模塊320和閉合區(qū)域確定模塊330。

其中,無向圖構(gòu)建模塊310,用于獲取繪制圖形的特征點(diǎn)集,基于所述特征點(diǎn)集構(gòu)建無向圖;起始點(diǎn)確定模塊320,用于獲取觸發(fā)點(diǎn)的坐標(biāo),根據(jù)所述觸發(fā)點(diǎn)的坐標(biāo)確定無向圖中的起始點(diǎn);閉合區(qū)域確定模塊330,用于根據(jù)所述觸發(fā)點(diǎn)、所述起始點(diǎn)和所述無向圖,確定所述繪制圖形中的閉合區(qū)域。

本實(shí)施例的技術(shù)方案,通過觸發(fā)點(diǎn)的坐標(biāo)以及基于繪制圖形的特征點(diǎn)集構(gòu)建的無向圖,確定無向圖中的起始點(diǎn),進(jìn)而根據(jù)觸發(fā)點(diǎn)、起始點(diǎn)和無向圖確定繪制圖形中的閉合區(qū)域,且不用確定繪制圖形中所有的閉合區(qū)域,根據(jù)觸發(fā)點(diǎn)有目的地獲取閉合區(qū)域,不僅解決了繪圖工具無法準(zhǔn)確填充閉合區(qū)域并得到矢量填充塊的問題,而且能夠高效、精準(zhǔn)確定繪制圖形的閉合區(qū)域,以實(shí)現(xiàn)對填充塊的精準(zhǔn)矢量填充。

在上述技術(shù)方案的基礎(chǔ)上,所述無向圖構(gòu)建模塊用于:

根據(jù)繪制圖形各對象的數(shù)學(xué)方程計(jì)算并記錄各對象之間的交點(diǎn)信息;所述交點(diǎn)信息包括交點(diǎn)坐標(biāo)和交點(diǎn)之間的路徑信息;

基于所述交點(diǎn)信息構(gòu)建無向圖。

在上述各技術(shù)方案的基礎(chǔ)上,所述起始點(diǎn)確定模塊用于:

獲取觸發(fā)點(diǎn)的坐標(biāo),以觸發(fā)點(diǎn)為坐標(biāo)原點(diǎn),建立新的坐標(biāo)系,并在默認(rèn)坐標(biāo)系中計(jì)算所述新的坐標(biāo)系的坐標(biāo)軸與所述繪制圖形的交點(diǎn);

分別計(jì)算出各個(gè)交點(diǎn)與觸發(fā)點(diǎn)所形成的向量的長度,將所述長度最小的點(diǎn)添加到所述無向圖中,作為所述無向圖中的起始點(diǎn)。

在上述各技術(shù)方案的基礎(chǔ)上,所述閉合區(qū)域確定模塊用于:

將所述起始點(diǎn)在無向圖中的任一能夠直接到達(dá)的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn),確定所述起始點(diǎn)到所述關(guān)鍵點(diǎn)的向量繞所述觸發(fā)點(diǎn)的旋轉(zhuǎn)方向;

獲取新確認(rèn)的所述關(guān)鍵點(diǎn)沿所述旋轉(zhuǎn)方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合,判斷所述備用關(guān)鍵點(diǎn)集合是否為空,所述備用關(guān)鍵點(diǎn)集合不包括前一個(gè)確認(rèn)的關(guān)鍵點(diǎn);

若所述備用關(guān)鍵點(diǎn)集合不為空,則計(jì)算出所述備用關(guān)鍵點(diǎn)集合中與觸發(fā)點(diǎn)距離最近的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn);

若所述備用關(guān)鍵點(diǎn)集合為空,則獲取新確認(rèn)的所述關(guān)鍵點(diǎn)沿所述旋轉(zhuǎn)方向的反方向能夠直接到達(dá)的相鄰點(diǎn)構(gòu)成的備用關(guān)鍵點(diǎn)集合;判斷所述備用關(guān)鍵點(diǎn)集合是否為空;

若根據(jù)所述旋轉(zhuǎn)方向的反方向確認(rèn)的備用關(guān)鍵點(diǎn)集合不為空,則計(jì)算出所述備用關(guān)鍵點(diǎn)集合中以當(dāng)前關(guān)鍵點(diǎn)為起點(diǎn)繞觸發(fā)點(diǎn)旋轉(zhuǎn)角度值最小的相鄰點(diǎn)確認(rèn)為關(guān)鍵點(diǎn);

判斷新確認(rèn)的關(guān)鍵點(diǎn)是否與第一個(gè)關(guān)鍵點(diǎn)重合,若是,則根據(jù)所述關(guān)鍵點(diǎn)確認(rèn)閉合區(qū)域,否則繼續(xù)獲取新確認(rèn)的所述關(guān)鍵點(diǎn)的備用關(guān)鍵點(diǎn)集合。

在上述各技術(shù)方案的基礎(chǔ)上,所述的閉合區(qū)域的識別裝置還包括:

填充模塊,在所述確定所述繪制圖形中的閉合區(qū)域之后,判斷所述觸發(fā)點(diǎn)是否處于所述閉合區(qū)域內(nèi),若是,則對所述閉合區(qū)域進(jìn)行填充;否則輸出提示信息。

上述實(shí)施例中提供的閉合區(qū)域的識別裝置及移動(dòng)終端可執(zhí)行本發(fā)明任意實(shí)施例所提供的閉合區(qū)域的識別方法,具備執(zhí)行該方法相應(yīng)的功能模塊和有益效果。未在上述實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本發(fā)明任意實(shí)施例所提供的閉合區(qū)域的識別方法。

在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,“計(jì)算機(jī)可讀介質(zhì)”可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。

計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲器(ram),只讀存儲器(rom),可擦除可編輯只讀存儲器(eprom或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(cdrom)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲在計(jì)算機(jī)存儲器中。

應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。

在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。

注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實(shí)施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1