專利名稱:用于增強(qiáng)映像樹的可視性的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地,涉及用于增強(qiáng)映像樹(treemap)的可視性的方法和使用該方法構(gòu)造可視性得到增強(qiáng)的映像樹的方法和系統(tǒng)。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,在不斷涌現(xiàn)出的包括論壇、郵件列表、商務(wù)組織圖表、內(nèi)容管理分類及產(chǎn)品分類等各種與數(shù)據(jù)庫相關(guān)的應(yīng)用中,都會出現(xiàn)各種具有層次結(jié)構(gòu)的數(shù)據(jù)。層次結(jié)構(gòu),也稱作樹結(jié)構(gòu),是多個數(shù)據(jù)節(jié)點(diǎn)的集合,其中每一個節(jié)點(diǎn)都具有單個父節(jié)點(diǎn)、零到多個子節(jié)點(diǎn)(根節(jié)點(diǎn)除外,其沒有父節(jié)點(diǎn))。層次結(jié)構(gòu)數(shù)據(jù)包含著兩種信息與層次結(jié)構(gòu)相關(guān)的結(jié)構(gòu)信息以及與每一個節(jié)點(diǎn)相關(guān)的內(nèi)容信息。
傳統(tǒng)上,對層次結(jié)構(gòu)數(shù)據(jù)進(jìn)行可視化的方法大致分為三類列表、略圖(outline)和樹形圖。
列表在呈現(xiàn)層次結(jié)構(gòu)數(shù)據(jù)的內(nèi)容方面具有優(yōu)勢,但是卻不能有效地反映結(jié)構(gòu)信息。雖然可以通過緊鄰列表中的各項(xiàng)顯示其在層次結(jié)構(gòu)中的位置來彌補(bǔ)列表的這一缺陷,但是由于需要用戶自己分析列表中各項(xiàng)的路徑信息,所以這不是一種理想的解決方案。
略圖是列表與樹形圖之間的一種折衷方案,其對列表中各項(xiàng)的內(nèi)容進(jìn)行概括,利用縮進(jìn)來表示各項(xiàng)的結(jié)構(gòu)位置。圖1示出了一個文件夾層次結(jié)構(gòu)的略圖。
最后,樹形圖是用于顯示包含多個節(jié)點(diǎn)的層次結(jié)構(gòu)數(shù)據(jù)集的最通用方法。在樹形圖中,以圖標(biāo)來表示層次結(jié)構(gòu)數(shù)據(jù)集中的各節(jié)點(diǎn)。并且,每一個節(jié)點(diǎn)都可以展開或折疊,以顯示或隱藏其子節(jié)點(diǎn)。典型的樹形圖是文件管理器中的目錄樹。樹形圖在呈現(xiàn)內(nèi)容方面遜色于其他兩種方法,但在呈現(xiàn)結(jié)構(gòu)信息方面更加有效。圖2示出了與圖1中的略圖對應(yīng)的樹形圖。
如上所述,以上三種傳統(tǒng)方法具有其各自的優(yōu)點(diǎn)和缺點(diǎn)。但是,對于大型層次結(jié)構(gòu)數(shù)據(jù)集來說,這些方法具有不能同時呈現(xiàn)其完整結(jié)構(gòu)布局的共性。這是因?yàn)?,利用這幾種方法呈現(xiàn)層次結(jié)構(gòu)數(shù)據(jù)所需的顯示行數(shù)將會與層次結(jié)構(gòu)中的節(jié)點(diǎn)數(shù)成正比,層次結(jié)構(gòu)數(shù)據(jù)集越大,其整體結(jié)構(gòu)布局所需的顯示空間將越大,從而較小的屏幕不能滿足龐大結(jié)構(gòu)布局的整體顯示空間的需求。除此以外,對于樹形圖來說,所存在的另一個問題是水平滾動的問題。尤其在屏幕較小的情況下,在展開層次結(jié)構(gòu)中的所有節(jié)點(diǎn)時,結(jié)構(gòu)樹將會變得很寬而不適合于屏幕大小,因而當(dāng)用戶進(jìn)行屏幕的水平滾動時,很可能會出現(xiàn)在層次結(jié)構(gòu)中導(dǎo)航錯誤的問題。
為了克服上述傳統(tǒng)可視化技術(shù)的缺陷,已提出有多種對層次結(jié)構(gòu)數(shù)據(jù)進(jìn)行可視化的方法。在這些方法當(dāng)中,映像樹得到了越來越多的關(guān)注。
映像樹是一種用于在有限的空間內(nèi)可視化層次結(jié)構(gòu)數(shù)據(jù)集的方法,其將顯示空間劃分為代表樹結(jié)構(gòu)的矩形包圍盒(bounding box)的集合,并使用大小和顏色信息來表現(xiàn)葉子節(jié)點(diǎn)的屬性。映像樹使用戶能夠?qū)Ρ瘸鰳浣Y(jié)構(gòu)中不同深度的節(jié)點(diǎn)和子樹,從而幫助他們識別出該樹結(jié)構(gòu)的整體結(jié)構(gòu)信息。映像樹由Ben Shneiderman首先在20世紀(jì)90年代期間提出,且其最初被設(shè)計(jì)為對硬盤驅(qū)動器上的文件進(jìn)行可視化。在Brian Johnson和BenShneiderman的文章“Tree-mapA Space-Filling Approach to theVisualization of Hierarchical Information Structures”(Proc.IEEEVisualization’91,IEEE,Piscataway,NJ(1991),284-291)中對映像樹的概念進(jìn)行了詳細(xì)介紹。
映像樹具有良好的擴(kuò)展性,其甚至可用于在單個屏幕上呈現(xiàn)具有上百萬項(xiàng)的大型層次結(jié)構(gòu),所以目前映像樹被廣泛應(yīng)用于從金融分析到體育報(bào)道的各種領(lǐng)域。但是,在傳統(tǒng)的映像樹中識別出層次結(jié)構(gòu)數(shù)據(jù)的整體結(jié)構(gòu)并不輕松,尤其是在層次結(jié)構(gòu)具有相當(dāng)大深度的情況下,因?yàn)橛诚駱鋵τ诟缸雨P(guān)系的呈現(xiàn)并不明顯,甚至是很難識別。由于整體結(jié)構(gòu)對于獲得層次結(jié)構(gòu)數(shù)據(jù)的概觀來說是相當(dāng)重要的,所以目前存在著針對此問題的多種解決方案,例如映像樹的3D效果呈現(xiàn)方案等。但是,這些方案或者所需的計(jì)算資源太多或者所達(dá)到的效果并不理想。
因此,需要提供一種用于增強(qiáng)映像樹的可視性的方法和裝置,來推動映像樹的進(jìn)一步應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明正是鑒于上述現(xiàn)有技術(shù)中的問題提出的,其目的在于提供一種用于增強(qiáng)映像樹的可視性的方法和裝置以及用于構(gòu)造可視性得到增強(qiáng)的映像樹的方法和系統(tǒng),以在有限空間內(nèi)可視化大型層次結(jié)構(gòu)數(shù)據(jù),同時突出層次結(jié)構(gòu)中的父子關(guān)系,進(jìn)而使得其整體結(jié)構(gòu)更加容易識別。
根據(jù)本發(fā)明的一個方面,提供了一種用于增強(qiáng)映像樹的可視性的方法,包括在構(gòu)造映像樹時,對于父節(jié)點(diǎn)區(qū)域,將其與包含其所有子節(jié)點(diǎn)區(qū)域的包圍盒相對偏移,以使該包圍盒一部分移到該父節(jié)點(diǎn)區(qū)域之外,并且該包圍盒中的每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該父節(jié)點(diǎn)區(qū)域內(nèi)。
優(yōu)選地,上述將父節(jié)點(diǎn)區(qū)域與包圍盒相對偏移的步驟進(jìn)一步包括將上述父節(jié)點(diǎn)區(qū)域相對于上述包圍盒偏移。
優(yōu)選地,上述將父節(jié)點(diǎn)區(qū)域與包圍盒相對偏移的步驟進(jìn)一步包括將上述包圍盒相對于上述父節(jié)點(diǎn)區(qū)域偏移。
優(yōu)選地,上述父節(jié)點(diǎn)區(qū)域或上述包圍盒的偏移方向包括水平偏移方向分量和垂直偏移方向分量。
優(yōu)選地,上述將父節(jié)點(diǎn)區(qū)域與包圍盒相對偏移的步驟進(jìn)一步包括確定該父節(jié)點(diǎn)區(qū)域與該包圍盒的相對偏移距離,其中該相對偏移距離包括在上述水平偏移方向上的相對偏移距離分量和在上述垂直偏移方向上的相對偏移距離分量;以及根據(jù)所確定的相對偏移距離,將該父節(jié)點(diǎn)區(qū)域與該包圍盒相對偏移。
優(yōu)選地,上述水平偏移方向上的偏移距離和上述垂直偏移方向上的偏移距離是常量。
優(yōu)選地,上述水平偏移方向上的偏移距離和上述垂直偏移方向上的偏移距離是依上述父節(jié)點(diǎn)區(qū)域的深度而不同的值。
優(yōu)選地,所述的增強(qiáng)映像樹的可視性的方法,進(jìn)一步包括在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,對該父節(jié)點(diǎn)區(qū)域的大小進(jìn)行調(diào)整,以包含其上述每一個子節(jié)點(diǎn)區(qū)域的全部或部分。
優(yōu)選地,所述的增強(qiáng)映像樹的可視性的方法,進(jìn)一步包括在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,對該父節(jié)點(diǎn)區(qū)域連同其子節(jié)點(diǎn)區(qū)域的位置一起進(jìn)行調(diào)整,以不與上述映像樹中的其他兄弟節(jié)點(diǎn)區(qū)域相互重疊。
優(yōu)選地,上述父節(jié)點(diǎn)區(qū)域是對應(yīng)于上述層次結(jié)構(gòu)中的根節(jié)點(diǎn)的區(qū)域。
優(yōu)選地,上述父節(jié)點(diǎn)區(qū)域是對應(yīng)于上述層次結(jié)構(gòu)中帶有至少一個子節(jié)點(diǎn)的非根節(jié)點(diǎn)的區(qū)域。
優(yōu)選地,上述子節(jié)點(diǎn)區(qū)域中的至少一個是對應(yīng)于上述層次結(jié)構(gòu)中的葉子節(jié)點(diǎn)的區(qū)域。
優(yōu)選地,上述子節(jié)點(diǎn)區(qū)域中的至少一個是對應(yīng)于上述層次結(jié)構(gòu)中帶有至少一個子節(jié)點(diǎn)的非葉子節(jié)點(diǎn)的區(qū)域。
根據(jù)本發(fā)明的另一個方面,提供了一種用于構(gòu)造可視性增強(qiáng)的映像樹的方法,包括對于指定層次結(jié)構(gòu)中的從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的每一個節(jié)點(diǎn)計(jì)算該節(jié)點(diǎn)在映像樹中的相應(yīng)區(qū)域;根據(jù)上述計(jì)算步驟的結(jié)果,將該節(jié)點(diǎn)所對應(yīng)的區(qū)域布置在指定映像樹區(qū)域內(nèi);以及若當(dāng)前節(jié)點(diǎn)為父節(jié)點(diǎn),則對于該父節(jié)點(diǎn)的相應(yīng)區(qū)域執(zhí)行上述增強(qiáng)映像樹的可視性的方法;以及將上述可視性增強(qiáng)了的映像樹呈現(xiàn)在指定屏幕區(qū)域上。
優(yōu)選地,在上述計(jì)算步驟中,使上述層次結(jié)構(gòu)中每一個父節(jié)點(diǎn)在映像樹中的相應(yīng)區(qū)域包含所有其子節(jié)點(diǎn)的相應(yīng)區(qū)域,并且使每一個節(jié)點(diǎn)的相應(yīng)區(qū)域不與其兄弟節(jié)點(diǎn)的相應(yīng)區(qū)域重疊。
優(yōu)選地,上述計(jì)算步驟是利用分割算法實(shí)現(xiàn)的。
優(yōu)選地,上述呈現(xiàn)步驟進(jìn)一步包括對上述可視性增強(qiáng)了的映像樹的整體區(qū)域大小進(jìn)行調(diào)整,以適合于指定屏幕區(qū)域的尺寸。
優(yōu)選地,上述呈現(xiàn)步驟進(jìn)一步包括根據(jù)上述布置步驟的結(jié)果,以指定形狀描繪出上述節(jié)點(diǎn)的相應(yīng)區(qū)域的邊框。
優(yōu)選地,上述指定形狀為矩形、多邊形、橢圓形和圓角矩形中的任意一種。
優(yōu)選地,上述呈現(xiàn)步驟進(jìn)一步包括以不同的顏色填充上述層次結(jié)構(gòu)中不同深度的節(jié)點(diǎn)的相應(yīng)區(qū)域。
優(yōu)選地,上述布置步驟進(jìn)一步包括以不同的灰度等級填充上述層次結(jié)構(gòu)中不同深度的節(jié)點(diǎn)的相應(yīng)區(qū)域。
根據(jù)本發(fā)明的再另一個方面,提供了一種用于增強(qiáng)映像樹的可視性的裝置,包括偏移方向/距離確定模塊,其在構(gòu)造映像樹時確定父節(jié)點(diǎn)區(qū)域與包含其所有子節(jié)點(diǎn)的相應(yīng)區(qū)域的包圍盒的相對偏移方向和距離;以及偏移模塊,其根據(jù)上述偏移方向/距離確定模塊所確定的相對偏移方向和距離,將上述父節(jié)點(diǎn)的相應(yīng)區(qū)域與上述包圍盒相對偏移,以使該包圍盒一部分移到該父節(jié)點(diǎn)區(qū)域之外,并且該包圍盒中的每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該父節(jié)點(diǎn)區(qū)域內(nèi)。
優(yōu)選地,上述用于增強(qiáng)映像樹的可視性的裝置進(jìn)一步包括區(qū)域調(diào)整模塊,其在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,調(diào)整該父節(jié)點(diǎn)區(qū)域的大小,以包含其每一個子節(jié)點(diǎn)區(qū)域的全部或部分。
優(yōu)選地,上述用于增強(qiáng)映像樹的可視性的裝置進(jìn)一步包括位置調(diào)整模塊,其在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,對該父節(jié)點(diǎn)區(qū)域連同其子節(jié)點(diǎn)區(qū)域的位置一起進(jìn)行調(diào)整,以不與其他兄弟節(jié)點(diǎn)區(qū)域相互重疊。
根據(jù)本發(fā)明的再另一個方面,提供了一種用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng),包括區(qū)域計(jì)算模塊,其為指定層次結(jié)構(gòu)中的每一個節(jié)點(diǎn)計(jì)算其在映像樹中的相應(yīng)區(qū)域;區(qū)域布置模塊,其根據(jù)上述區(qū)域計(jì)算模塊的計(jì)算結(jié)果,將上述層次結(jié)構(gòu)中的每一個節(jié)點(diǎn)所對應(yīng)的區(qū)域布置在指定映像樹區(qū)域內(nèi);上述用于增強(qiáng)映像樹的可視性的裝置;以及呈現(xiàn)模塊,其將經(jīng)過上述用于增強(qiáng)映像樹的可視性的裝置處理后可視性增強(qiáng)了的映像樹呈現(xiàn)在指定屏幕區(qū)域上。
本發(fā)明將其中“高度”坐標(biāo)(由偏移因子代表)應(yīng)用于映像樹,以實(shí)現(xiàn)映像樹的2.5D表示。具體地,本發(fā)明通過使映像樹中父節(jié)點(diǎn)所對應(yīng)的區(qū)域與子節(jié)點(diǎn)所對應(yīng)的區(qū)域相對偏移,形成層疊(cascading)效果,來突出層次結(jié)構(gòu)中的父子關(guān)系。尤其是在可視化大型層次結(jié)構(gòu)的情況下,本發(fā)明將使得映像樹中的結(jié)構(gòu)信息更加明顯并且容易識別,使其可視性進(jìn)一步增強(qiáng),從而有助于映像樹的進(jìn)一步廣泛應(yīng)用。
相信通過以下結(jié)合附圖對本發(fā)明具體實(shí)施方式
的說明,能夠使人們更好地了解本發(fā)明上述的特點(diǎn)、優(yōu)點(diǎn)和目的。
圖1示出了一個文件夾層次結(jié)構(gòu)的略圖;圖2示出了與圖1中的略圖對應(yīng)的樹形圖;圖3示出了映像樹的一個例子;圖4是示出根據(jù)本發(fā)明實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的方法的流程圖;圖5是示出根據(jù)本發(fā)明一個實(shí)施例的用于增強(qiáng)映像樹的可視性的方法的流程圖;圖6示意性地說明圖5的方法中的偏移操作;圖7示意性地說明圖5的方法中的區(qū)域調(diào)整操作;圖8是示出根據(jù)本發(fā)明另一實(shí)施例的用于增強(qiáng)映像樹的可視性的方法的流程圖;圖9示出了根據(jù)本發(fā)明一個實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的方法生成的映像樹的一個例子;圖10示出了根據(jù)本發(fā)明另一實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的方法生成的映像樹的一個例子;圖11示出了根據(jù)本發(fā)明的再另一實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的方法生成的映像樹的一個例子;以及圖12是示出根據(jù)本發(fā)明實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng)的框圖。
具體實(shí)施例方式
為了有助于對本發(fā)明的完全理解,在對本發(fā)明的各個優(yōu)選實(shí)施例進(jìn)行描述之前,首先對映像樹的概念進(jìn)行簡要介紹。
映像樹以填空的方式將層次結(jié)構(gòu)信息映射為矩形的2D表示,并將顯示空間劃分為代表樹結(jié)構(gòu)的矩形包圍盒的集合。映像樹隱式地提供結(jié)構(gòu)信息,消除了顯式地描繪內(nèi)部節(jié)點(diǎn)的需要。具體地,映像樹將指定區(qū)域劃分為代表層次結(jié)構(gòu)中的頂層節(jié)點(diǎn)的區(qū)域,然后對每一個所劃分的區(qū)域遞歸進(jìn)行劃分,并在每一次進(jìn)行遞歸劃分時將劃分方向旋轉(zhuǎn)90度。此外,在進(jìn)行劃分時,映像樹依據(jù)各節(jié)點(diǎn)的權(quán)值來決定劃分給其的區(qū)域大小。也就是說,層次結(jié)構(gòu)中包含更多重要信息的部分可以被分配更多的顯示空間,而相對不重要的部分可以被分配較少的顯示空間。
圖3示出了映像樹的一個例子。如圖3所示,該映像樹中的樹結(jié)構(gòu)的根節(jié)點(diǎn)名為“Tree”,其具有四個子節(jié)點(diǎn),分別名為“1”、“2”、“3”和“4”,并且這些子節(jié)點(diǎn)的每一個還具有其自身的子節(jié)點(diǎn)。其中,這些子節(jié)點(diǎn)的命名遵循著書籍各章節(jié)的編號習(xí)慣。此外,在圖3中還省略了葉子節(jié)點(diǎn)的名稱??梢钥闯?,在圖3中,例如<4.5.5,4.5,4,Tree>的路徑很難被辨識出來,并且原始樹結(jié)構(gòu)的概觀也是很難被清晰得到的。尤其在節(jié)點(diǎn)數(shù)量達(dá)到上千個或?qū)哟谓Y(jié)構(gòu)具有相當(dāng)大的深度(通常在層次結(jié)構(gòu)的最大深度大于3)時,映像樹的這一缺點(diǎn)更加明顯,它只能幫助用戶查看葉子節(jié)點(diǎn)的分布,而無法清晰提供層次結(jié)構(gòu)的整體概觀。
為此,本發(fā)明提出一種利用2.5D概念來構(gòu)造可視性增強(qiáng)的映像樹的方法。下面就結(jié)合附圖對本發(fā)明的構(gòu)造可視性增強(qiáng)的映像樹的方法進(jìn)行詳細(xì)的說明。
圖4是示出根據(jù)本發(fā)明一個實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的方法的流程圖。
如圖4所示,首先在步驟405,對于指定的層次結(jié)構(gòu),從根節(jié)點(diǎn)開始,獲得需要在指定區(qū)域上進(jìn)行描繪的各節(jié)點(diǎn)的信息。其中節(jié)點(diǎn)的信息可包括節(jié)點(diǎn)的權(quán)值、名稱、內(nèi)容等。
在步驟410中,計(jì)算各節(jié)點(diǎn)的相應(yīng)區(qū)域。在該步驟中,根據(jù)在步驟405中獲得的各節(jié)點(diǎn)的權(quán)值來計(jì)算各節(jié)點(diǎn)的相應(yīng)區(qū)域,也就是說,節(jié)點(diǎn)的權(quán)值越大,則分配給其的空間也將越大。該計(jì)算步驟的準(zhǔn)則是若節(jié)點(diǎn)為父節(jié)點(diǎn),則其相應(yīng)的區(qū)域應(yīng)該能夠包含所有其子節(jié)點(diǎn)的相應(yīng)區(qū)域;以及不論節(jié)點(diǎn)是父節(jié)點(diǎn)還是子節(jié)點(diǎn),其相應(yīng)的區(qū)域都不應(yīng)與其兄弟節(jié)點(diǎn)的相應(yīng)區(qū)域重疊。
此外,需要說明的是,該計(jì)算步驟可以利用現(xiàn)有的映像樹布局算法來實(shí)現(xiàn)。存在多種可用的現(xiàn)有映像樹布局算法,諸如分割算法(splitalgorithm)等。
在步驟415,在指定區(qū)域內(nèi)布置各節(jié)點(diǎn)的相應(yīng)區(qū)域。也就是說,在該步驟中,計(jì)算出各節(jié)點(diǎn)的相應(yīng)區(qū)域的確切位置和大小。該步驟也可利用上述現(xiàn)有的映像樹布局算法來實(shí)現(xiàn)。
下面,給出在Brian Johnson和Ben Shneiderman的文章“Tree-mapA Space-Filling Approach to the Visualization of Hierarchical InformationStructures”中描述的映像樹布局算法,作為參考<pre listing-type="program-listing">DrawTree(){ doneSize=0; PaintDisplayRectangle(); switch(myOrientation){ case HORIZONTAL startSide=myBounds.left; case VERTICAL startSide=myBounds.top; } if(myNodeType==Internal){ ForEach(childNode)Do{</pre><pre listing-type="program-listing"> childNode=SetBounds(startSide,doneSize,myOrientation); childNode->SetVisual(); childNode->DrawTree(); }}} SetBounds(startSide,doneSize,parentOrientation); {doneSize=doneSize+mySize;switch(parentOrientation){ case HORIZONTAL myOrientation=VERTICAL; endSide=parentWidth+doneSize/parentSize; SetMyRect(startSide+offSet,ParentBounds.top+offset,ParentBounds.left+endSide-offSet,ParentBounds.bottom-offSet); StartSide=parentBounds.left+endSide; case VERTICAL myOrientation=HORIZONTAL; endSide=parentHeight+doneSize/parentSize; SetThisRect(parentBounds.left+offSet,startSide+offSet, parentBounds.right-offSet,parentBounds.top+endSide-offSet); startSide=parentBounds.top+endSide; }}</pre>從上述算法中可以看出,對各節(jié)點(diǎn)的相應(yīng)區(qū)域的計(jì)算、布置以及呈現(xiàn)是結(jié)合在一起進(jìn)行的,而對于整個層次結(jié)構(gòu)的布局來說則是利用該算法的遞歸調(diào)用來實(shí)現(xiàn)的。在本實(shí)施例中也是如此,上述計(jì)算步驟和布置步驟是結(jié)合在一起實(shí)現(xiàn)的。
本實(shí)施例的構(gòu)造可視性增強(qiáng)的映像樹的方法與上述現(xiàn)有算法的不同之處在于下面的步驟。
在步驟420,對于在步驟415形成的映像樹布局中父節(jié)點(diǎn)(非葉子節(jié)點(diǎn))的相應(yīng)區(qū)域執(zhí)行增強(qiáng)映像樹的可視性的方法。該步驟的目的是使所生成的映像樹中所有父節(jié)點(diǎn)的相應(yīng)區(qū)域與其子節(jié)點(diǎn)的相應(yīng)區(qū)域形成層疊效果,來突出父子關(guān)系,從而增強(qiáng)映像樹的可視性。
具體地,在該步驟中,從上述層次結(jié)構(gòu)的根節(jié)點(diǎn)開始依次確定當(dāng)前節(jié)點(diǎn)是否為父節(jié)點(diǎn),即非葉子節(jié)點(diǎn)。在當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)時,對于其在上述所形成的映像樹布局中的相應(yīng)區(qū)域執(zhí)行增強(qiáng)映像樹的可視性的方法。該過程持續(xù)到對上述布局中的所有非葉子節(jié)點(diǎn)的相應(yīng)區(qū)域均完成增強(qiáng)映像樹的可視性的方法為止。
下面,結(jié)合附圖對本發(fā)明的增強(qiáng)映像樹的可視性的方法進(jìn)行詳細(xì)說明。
圖5是示出根據(jù)本發(fā)明一個實(shí)施例的用于增強(qiáng)映像樹的可視性的方法的流程圖。
如圖5所示,在步驟505,確定偏移方向。一般來說,該偏移方向是預(yù)先確定的,并且其可以是任意的方向,但為了達(dá)到本發(fā)明所預(yù)期的最佳效果,在本實(shí)施例中,將該偏移方向設(shè)定為朝向左上方的方向。也就是說,該偏移方向包括水平偏移方向分量和垂直偏移方向分量。
接著,在步驟510,確定偏移距離。在該步驟中,需要確定在水平偏移方向上的偏移距離和在垂直偏移方向上的偏移距離。在一個實(shí)施例中,該水平偏移方向上的偏移距離和垂直偏移方向上的偏移距離是預(yù)定的常量。在另一實(shí)施例中,該水平偏移方向上的偏移距離和垂直偏移方向上的偏移距離是預(yù)定的依節(jié)點(diǎn)的深度增加而線性減小的值。在又一實(shí)施例中,該水平偏移方向上的偏移距離和垂直偏移方向上的偏移距離是依節(jié)點(diǎn)的深度而非線性變化的值。在后面兩種情況下,需要根據(jù)當(dāng)前父節(jié)點(diǎn)在層次結(jié)構(gòu)中的深度來確定相應(yīng)的偏移距離。偏移距離依節(jié)點(diǎn)深度而變化對于獲得各種有用的映像樹的2.5D效果以及映像樹的增強(qiáng)可視性是相當(dāng)有用的。
在步驟515,使當(dāng)前父節(jié)點(diǎn)的相應(yīng)區(qū)域偏移。圖6對該偏移操作進(jìn)行了示意性地說明。具體地,在該步驟中,如圖6所示,根據(jù)在步驟510中確定的偏移距離,使該當(dāng)前父節(jié)點(diǎn)的相應(yīng)區(qū)域相對于包含其所有子節(jié)點(diǎn)區(qū)域的包圍盒在偏移方向,即左上方方向上,進(jìn)行偏移,直到該當(dāng)前父節(jié)點(diǎn)的區(qū)域與該包圍盒的相對距離達(dá)到偏移距離為止。也就是說,該當(dāng)前父節(jié)點(diǎn)區(qū)域在水平偏移方向上與該包圍盒的距離達(dá)到所確定的水平偏移距離,在垂直偏移方向上與該包圍盒的距離達(dá)到所確定的垂直偏移距離,從而使該當(dāng)前父節(jié)點(diǎn)區(qū)域與其子節(jié)點(diǎn)區(qū)域形成層疊效果。
其中,包圍盒是本領(lǐng)域中廣泛采用的一個概念。具體地,在進(jìn)行圖形求交等計(jì)算時,為了減小計(jì)算量,經(jīng)常利用圖形的凸包來代替圖形進(jìn)行計(jì)算。一個圖形的凸包,是包含這個圖形的一個凸的區(qū)域。平面圖形的凸包可以是一個凸多邊形,矩形、圓形等任何形狀的能夠包含該平面圖形的區(qū)域。在映像樹領(lǐng)域中所采用的包圍盒正是這樣一種特殊的凸包,其是二維平面上的一個包含相應(yīng)節(jié)點(diǎn)區(qū)域的矩形,它的兩條邊分別與兩條坐標(biāo)軸平行,可以表示為兩個不等式xmin≤x≤xmax,ymin≤y≤ymax。其中x和y是相應(yīng)節(jié)點(diǎn)區(qū)域的坐標(biāo),而包圍盒則是由xmin、xmax、ymin、ymax限定的一個矩形。兩個包圍盒相交的充要條件是它們在每一個坐標(biāo)軸方向上都相交。由于判定兩個包圍盒的相交情況比較容易,所以包圍盒成為最常用的一種凸包。
求多邊形或多面體的包圍盒是相當(dāng)簡便的。只要遍歷其所有頂點(diǎn),就可以找出多邊形或多面體在各個坐標(biāo)軸方向上的最大、最小坐標(biāo)值,從而確定包圍盒。對于已近似化為多邊形或多面體的含有曲線曲面的幾何體,也可以用同樣的方法求出包圍盒。對于一般的幾何形體,則要根據(jù)其具體性質(zhì)來求取其包圍盒。
然后,在步驟520,對當(dāng)前父節(jié)點(diǎn)區(qū)域的大小進(jìn)行調(diào)整。在該步驟中,在該當(dāng)前父節(jié)點(diǎn)區(qū)域的左上角位置不變的情況下,調(diào)整該區(qū)域大小,以使其每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該當(dāng)前父節(jié)點(diǎn)區(qū)域內(nèi),并且使最下排的子節(jié)點(diǎn)區(qū)域跨該當(dāng)前父節(jié)點(diǎn)區(qū)域的下邊界,而最右排的子節(jié)點(diǎn)區(qū)域跨該當(dāng)前父節(jié)點(diǎn)區(qū)域的右邊界。在本實(shí)施例中,如圖7所示,該調(diào)整步驟的依據(jù)是使該當(dāng)前父節(jié)點(diǎn)區(qū)域含蓋其子節(jié)點(diǎn)區(qū)域的最右中心點(diǎn)和其子節(jié)點(diǎn)區(qū)域的最下中心點(diǎn)。
接著,在步驟525,進(jìn)行位置調(diào)整。由于在步驟515和步驟520中對當(dāng)前父節(jié)點(diǎn)區(qū)域進(jìn)行了偏移和大小調(diào)整,所以可能會存在與其他兄弟節(jié)點(diǎn)區(qū)域的重疊。因此,在該步驟中,對當(dāng)前父節(jié)點(diǎn)區(qū)域連同其子節(jié)點(diǎn)區(qū)域的位置一起進(jìn)行調(diào)整,以消除與其他區(qū)域的重疊,從而使每一個非根節(jié)點(diǎn)區(qū)域之下只存在一個節(jié)點(diǎn)區(qū)域,以確保所生成的映像樹的正確性。
以上是對本實(shí)施例的用于增強(qiáng)映像樹的可視性的方法的詳細(xì)描述。下面給出該方法的具體代碼描述。public void tune(TreeRect cell){//1.葉子節(jié)點(diǎn)保留不動if(cell.childs==null){//葉子節(jié)點(diǎn),其中cell.x1,cell.y1,cell.x2,cell.y2存儲了前面布局的結(jié)果,分別為矩形的左上角和右下角位置cell.setContent(cell.x1,cell.y1,cell.x2,cell.y2);return;}int i;//2.調(diào)整每個子節(jié)點(diǎn)for(i=0;i<cell.childs.length;++i)tune(cell.childs[i]);//3.在子節(jié)點(diǎn)調(diào)整完畢后,調(diào)整當(dāng)前節(jié)點(diǎn),具體是重新設(shè)置當(dāng)前節(jié)點(diǎn)右下角位置,左上角不動double xx=cell.x1,yy=cell.y1;double xc,yc;for(i=0;i<cell.childs.length;++i){xc=cell.childs[i].cx1/4+cell.childs[i].cx2*3/4;yc=cell.childs[i].cy1/4+cell.childs[i].cy2*3/4;if(xc>xx)xx=xc;if(yc>yy)yy=y(tǒng)c;}cell.setContent(cell.x1,cell.y1,xx,yy);}需要說明的是,在本實(shí)施例中,是使當(dāng)前父節(jié)點(diǎn)區(qū)域相對于其子節(jié)點(diǎn)區(qū)域進(jìn)行偏移,但在其他實(shí)施例中,如圖8的步驟815所示,也可以使子節(jié)點(diǎn)區(qū)域相對于父節(jié)點(diǎn)區(qū)域進(jìn)行偏移,在此情況下,優(yōu)選地使子節(jié)點(diǎn)區(qū)域相對于父節(jié)點(diǎn)區(qū)域向右下方進(jìn)行偏移。當(dāng)然,只要能夠達(dá)到本發(fā)明的目的,任何其他的偏移方式都是允許的,都處于本發(fā)明的保護(hù)范圍之內(nèi)。
接著,返回到圖4,在步驟425,對所形成的可視化得到增強(qiáng)的映像樹的整體區(qū)域大小進(jìn)行調(diào)整,以適合于將顯示其的指定屏幕區(qū)域的尺寸。
在步驟430,描繪、填充節(jié)點(diǎn)區(qū)域。在該步驟中,從根節(jié)點(diǎn)開始直到葉子節(jié)點(diǎn)為止,對于每一個節(jié)點(diǎn)的相應(yīng)區(qū)域,描繪其邊框,并根據(jù)該節(jié)點(diǎn)的深度,對其相應(yīng)區(qū)域進(jìn)行填充。在本實(shí)施例中,采用矩形邊框來描繪層次結(jié)構(gòu)中每一個節(jié)點(diǎn)的相應(yīng)區(qū)域。此外,在本實(shí)施例中,以不同的灰度等級填充該層次結(jié)構(gòu)中不同深度的節(jié)點(diǎn)的相應(yīng)區(qū)域,來強(qiáng)調(diào)深度信息,這對于實(shí)際增強(qiáng)層疊的效果是很有用的。圖9示出了本實(shí)施例的方法生成的映像樹的一個例子。
在其他實(shí)施例中,可以采用其他形狀的邊框來描繪各個節(jié)點(diǎn)區(qū)域。圖10示出了根據(jù)本發(fā)明另一實(shí)施例的構(gòu)造可視性增強(qiáng)的映像樹的方法生成的映像樹的一個例子,在該映像樹中,采用橢圓形狀的邊框來描繪各節(jié)點(diǎn)區(qū)域。圖11示出了根據(jù)本發(fā)明的再另一實(shí)施例的構(gòu)造可視性增強(qiáng)的映像樹的方法生成的映像樹的一個例子,在該映像樹中,采用圓角矩形形狀的邊框來描繪各節(jié)點(diǎn)區(qū)域。此外,還可以采用多邊形形狀的邊框來描繪各節(jié)點(diǎn)區(qū)域。此外,在其他實(shí)施例中,可以利用不同的顏色來填充層次結(jié)構(gòu)中不同深度的節(jié)點(diǎn)的相應(yīng)區(qū)域。
以上是對本實(shí)施例的構(gòu)造可視性增強(qiáng)的映像樹的方法的詳細(xì)描述。需要說明的是,圖4的流程圖僅是示例性的,其中的循環(huán)過程在實(shí)際實(shí)現(xiàn)中是由對本實(shí)施例的方法的遞歸調(diào)用來實(shí)現(xiàn)的。
此外,在本實(shí)施例中,將計(jì)算、布置、可視性增強(qiáng)以及呈現(xiàn)步驟分別作為單獨(dú)的步驟來分別進(jìn)行描述,但這只是為了便于對本實(shí)施例的說明,在實(shí)際實(shí)現(xiàn)中,可以將這些步驟結(jié)合在一起實(shí)現(xiàn)。
此外,在其他實(shí)施例中,在布置步驟中,可以在利用現(xiàn)有映像樹布局算法布置映像樹時將子節(jié)點(diǎn)區(qū)域與父節(jié)點(diǎn)區(qū)域之間的間隔設(shè)置為本發(fā)明中的偏移距離,即將子節(jié)點(diǎn)區(qū)域與父節(jié)點(diǎn)區(qū)域之間的頂部填充距離設(shè)置為本發(fā)明的垂直偏移距離,將它們之間的左側(cè)填充距離設(shè)置為本發(fā)明的水平偏移距離。
此外,需要說明的是,圖9-11中的映像樹所呈現(xiàn)的層次結(jié)構(gòu)與圖3中的傳統(tǒng)形式的映像樹所呈現(xiàn)的層次結(jié)構(gòu)是相同的。但是,通過對比可以看出,利用本發(fā)明所生成的映像樹具有很強(qiáng)的3D效果。本發(fā)明通過使映像樹中的父節(jié)點(diǎn)區(qū)域和子節(jié)點(diǎn)區(qū)域?qū)盈B,產(chǎn)生類似于3D的效果,而使人能夠強(qiáng)烈感覺到子節(jié)點(diǎn)在父節(jié)點(diǎn)的前面,這種感覺將極大地幫助觀看者掌握該映像樹所呈遞的層次結(jié)構(gòu)關(guān)系。從而,本發(fā)明在可視化層次結(jié)構(gòu)的同時,使得層次結(jié)構(gòu)的信息更加明顯和容易識別。例如,在圖9中,由于層疊效果而使得父子關(guān)系更加明顯且容易識別,從而相對于圖3中的傳統(tǒng)映像樹來說,路徑<4.5.5,4.5,4,Tree>變得很容易識別,從而使得整個原始結(jié)構(gòu)也變得清晰起來。
在同一發(fā)明構(gòu)思下,本發(fā)明提出一種用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng)。下面結(jié)合附圖對該構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng)進(jìn)行詳細(xì)說明。
圖12是示出根據(jù)本發(fā)明實(shí)施例的用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng)的框圖。如圖12所示,構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng)120包括接口模塊121、區(qū)域計(jì)算模塊122、區(qū)域布置模塊123、可視性增強(qiáng)模塊124和呈現(xiàn)模塊125。
接口模塊121從外部獲得指定層次結(jié)構(gòu)從根節(jié)點(diǎn)開始的每一個節(jié)點(diǎn)的信息,包括節(jié)點(diǎn)的權(quán)值、名稱、內(nèi)容等。
區(qū)域計(jì)算模塊122根據(jù)接口模塊121所獲得的每一個節(jié)點(diǎn)的信息,為該節(jié)點(diǎn)計(jì)算其在映像樹中的相應(yīng)區(qū)域。節(jié)點(diǎn)的權(quán)值越大,分配給其的空間也將越大。在該區(qū)域計(jì)算模塊122中,為父節(jié)點(diǎn)所計(jì)算的相應(yīng)區(qū)域包含所有其子節(jié)點(diǎn)的相應(yīng)區(qū)域,并且為每一個節(jié)點(diǎn)所計(jì)算出的相應(yīng)區(qū)域都不與其兄弟節(jié)點(diǎn)的相應(yīng)區(qū)域重疊。
區(qū)域布置模塊123將區(qū)域計(jì)算模塊122所計(jì)算出的每一個節(jié)點(diǎn)的相應(yīng)區(qū)域布置在指定的映像樹區(qū)域內(nèi)。也就是說,確定每一個節(jié)點(diǎn)的相應(yīng)區(qū)域在映像樹中的確切位置和大小。并且,區(qū)域布置模塊123在對每一個節(jié)點(diǎn)的相應(yīng)區(qū)域進(jìn)行布置時,都要判斷當(dāng)前節(jié)點(diǎn)是否為父節(jié)點(diǎn),即非葉子節(jié)點(diǎn),若是,則對于當(dāng)前節(jié)點(diǎn)啟用可視性增強(qiáng)模塊124。
需要說明的是,區(qū)域計(jì)算模塊122和區(qū)域布置模塊123可利用現(xiàn)有的映像樹布局算法,例如分割算法,來實(shí)現(xiàn)。
可視性增強(qiáng)模塊124使映像樹中的所有父節(jié)點(diǎn)所對應(yīng)的區(qū)域與包含其所有子節(jié)點(diǎn)所對應(yīng)的區(qū)域的包圍盒形成層疊,以突出父子關(guān)系。
如圖12所示,可視性增強(qiáng)模塊124包括偏移方向/距離確定模塊1241、偏移模塊1242、區(qū)域調(diào)整模塊1243和位置調(diào)整模塊1244。
偏移方向/距離確定模塊1241確定當(dāng)前父節(jié)點(diǎn)區(qū)域與包含其所有子節(jié)點(diǎn)區(qū)域的包圍盒的相對偏移方向和距離。在本實(shí)施例中,偏移方向?yàn)樽笊戏?,也就是說,偏移方向包括水平偏移方向分量和垂直偏移方向分量。相應(yīng)地,偏移距離也包括在水平偏移方向上的偏移距離和在垂直偏移方向上的偏移距離,并且是預(yù)定的常量。在另一實(shí)施例中,該水平偏移方向上的偏移距離和垂直偏移方向上的偏移距離是預(yù)定的依節(jié)點(diǎn)的深度增加而線性減小的值。在又一實(shí)施例中,該水平偏移方向上的偏移距離和垂直偏移方向上的偏移距離是依節(jié)點(diǎn)的深度而非線性變化的值。
偏移模塊1242根據(jù)偏移方向/距離確定模塊1241所確定的相對偏移方向和距離,將當(dāng)前節(jié)點(diǎn)的相應(yīng)區(qū)域與包含其所有子節(jié)點(diǎn)區(qū)域的包圍盒相對偏移,以使該當(dāng)前節(jié)點(diǎn)區(qū)域在水平偏移方向上與該包圍盒的距離達(dá)到所確定的水平偏移距離,在垂直偏移方向上與該包圍盒的距離達(dá)到所確定的垂直偏移距離,從而使該當(dāng)前節(jié)點(diǎn)區(qū)域與其子節(jié)點(diǎn)區(qū)域形成層疊效果。
區(qū)域調(diào)整模塊1243,在當(dāng)前節(jié)點(diǎn)區(qū)域的左上角位置不變的情況下,調(diào)整該區(qū)域大小,以使其每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該當(dāng)前節(jié)點(diǎn)區(qū)域內(nèi),并且使其最下排的子節(jié)點(diǎn)區(qū)域跨該當(dāng)前節(jié)點(diǎn)區(qū)域的下邊界,而最右排的子節(jié)點(diǎn)區(qū)域跨該當(dāng)前節(jié)點(diǎn)區(qū)域的右邊界。具體地,在本實(shí)施例中,區(qū)域調(diào)整模塊1243尋找當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)區(qū)域的最右中心點(diǎn)和子節(jié)點(diǎn)區(qū)域的最下中心點(diǎn),并調(diào)整當(dāng)前節(jié)點(diǎn)區(qū)域以含蓋這些中心點(diǎn)。
位置調(diào)整模塊1244對偏移之后的當(dāng)前節(jié)點(diǎn)區(qū)域連同其子節(jié)點(diǎn)區(qū)域的位置一起進(jìn)行調(diào)整,以消除與其他兄弟節(jié)點(diǎn)區(qū)域的重疊,從而保證所生成的映像樹的正確性。
接著,呈現(xiàn)模塊125將所構(gòu)造的映像樹呈現(xiàn)在指定屏幕區(qū)域上。如圖12所示,呈現(xiàn)模塊125進(jìn)一步包括區(qū)域調(diào)整模塊1251和區(qū)域描繪/填充模塊1252。
區(qū)域調(diào)整模塊1251對指定的映像樹整體區(qū)域大小進(jìn)行調(diào)整,以適合于指定屏幕區(qū)域的尺寸。
區(qū)域描繪/填充模塊1252根據(jù)可視性增強(qiáng)模塊124對于各節(jié)點(diǎn)的相應(yīng)區(qū)域的布置結(jié)果,以指定形狀的邊框描繪出這些區(qū)域,并對其進(jìn)行填充。在本實(shí)施例中,利用矩形形狀的邊框來描繪這些區(qū)域。但在其他實(shí)施例中,也可以使用多邊形、橢圓形、圓角矩形等各種形狀的邊框來進(jìn)行描繪。此外,在本實(shí)施例中,根據(jù)當(dāng)前節(jié)點(diǎn)的深度不同,以不同的灰度等級來填充該節(jié)點(diǎn)的相應(yīng)區(qū)域。但在其他實(shí)施例中,也可以根據(jù)當(dāng)前節(jié)點(diǎn)的深度不同,以不同的顏色來填充該節(jié)點(diǎn)的相應(yīng)區(qū)域。
以上是對本發(fā)明的構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng)的詳細(xì)描述。如熟悉該技術(shù)領(lǐng)域的人員可以看到的那樣,本發(fā)明可以體現(xiàn)為方法、系統(tǒng)和/或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可以呈現(xiàn)為完全硬件實(shí)施形式、完全軟件實(shí)施形式或者軟件和硬件組合實(shí)施形式。此外,本發(fā)明可以呈現(xiàn)為在計(jì)算機(jī)可用存儲媒體上的計(jì)算機(jī)程序產(chǎn)品,該存儲媒體具有體現(xiàn)在媒體上的計(jì)算機(jī)可用程序代碼。任何適當(dāng)?shù)挠?jì)算機(jī)可讀媒體都可以使用,包括硬盤、CD-ROM、光存儲設(shè)備或磁存儲設(shè)備。此外,可以理解,方框圖和/或流程圖中的每個方框以及方框圖和流程圖中的一些方框的組合可以用一些計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給一通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一機(jī)器,使得這些指令通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器的執(zhí)行創(chuàng)建用于實(shí)現(xiàn)在方框圖和/或流程圖內(nèi)或者方框內(nèi)所指定的功能的裝置。
以上雖然通過一些示例性的實(shí)施例對本發(fā)明的增強(qiáng)映像樹的可視性的方法,以及使用該方法構(gòu)造可視性增強(qiáng)的映像樹的方法和系統(tǒng)進(jìn)行了詳細(xì)的描述,但是以上這些實(shí)施例并不是窮舉的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的精神和范圍內(nèi)實(shí)現(xiàn)各種變化和修改。
權(quán)利要求
1.一種用于增強(qiáng)映像樹的可視性的方法,包括在構(gòu)造映像樹時,對于父節(jié)點(diǎn)區(qū)域,將其與包含其所有子節(jié)點(diǎn)區(qū)域的包圍盒相對偏移,以使該包圍盒一部分移到該父節(jié)點(diǎn)區(qū)域之外,并且該包圍盒中的每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該父節(jié)點(diǎn)區(qū)域內(nèi)。
2.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,其中上述將父節(jié)點(diǎn)區(qū)域與包圍盒相對偏移的步驟進(jìn)一步包括將上述父節(jié)點(diǎn)區(qū)域相對于上述包圍盒偏移。
3.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,其中上述將父節(jié)點(diǎn)區(qū)域與包圍盒相對偏移的步驟進(jìn)一步包括將上述包圍盒相對于上述父節(jié)點(diǎn)區(qū)域偏移。
4.根據(jù)權(quán)利要求2或3所述的用于增強(qiáng)映像樹的可視性的方法,其中上述父節(jié)點(diǎn)區(qū)域或上述包圍盒的偏移方向包括水平偏移方向分量和垂直偏移方向分量。
5.根據(jù)權(quán)利要求4所述的用于增強(qiáng)映像樹的可視性的方法,其中上述將父節(jié)點(diǎn)區(qū)域與包圍盒相對偏移的步驟進(jìn)一步包括確定該父節(jié)點(diǎn)區(qū)域與該包圍盒的相對偏移距離,其中該相對偏移距離包括在上述水平偏移方向上的相對偏移距離分量和在上述垂直偏移方向上的相對偏移距離分量;以及根據(jù)所確定的相對偏移距離,將該父節(jié)點(diǎn)區(qū)域與該包圍盒相對偏移。
6.根據(jù)權(quán)利要求4所述的用于增強(qiáng)映像樹的可視性的方法,其中上述水平偏移方向上的偏移距離和上述垂直偏移方向上的偏移距離是常量。
7.根據(jù)權(quán)利要求4所述的用于增強(qiáng)映像樹的可視性的方法,其中上述水平偏移方向上的偏移距離和上述垂直偏移方向上的偏移距離是依上述父節(jié)點(diǎn)區(qū)域的深度而不同的值。
8.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,進(jìn)一步包括在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,對該父節(jié)點(diǎn)區(qū)域的大小進(jìn)行調(diào)整,以包含其上述每一個子節(jié)點(diǎn)區(qū)域的全部或部分。
9.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,進(jìn)一步包括在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,對該父節(jié)點(diǎn)區(qū)域連同其子節(jié)點(diǎn)區(qū)域的位置一起進(jìn)行調(diào)整,以不與上述映像樹中的其他兄弟節(jié)點(diǎn)區(qū)域相互重疊。
10.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,其中上述父節(jié)點(diǎn)區(qū)域是對應(yīng)于上述層次結(jié)構(gòu)中的根節(jié)點(diǎn)的區(qū)域。
11.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,其中上述父節(jié)點(diǎn)區(qū)域是對應(yīng)于上述層次結(jié)構(gòu)中帶有至少一個子節(jié)點(diǎn)的非根節(jié)點(diǎn)的區(qū)域。
12.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,其中上述子節(jié)點(diǎn)區(qū)域中的至少一個是對應(yīng)于上述層次結(jié)構(gòu)中的葉子節(jié)點(diǎn)的區(qū)域。
13.根據(jù)權(quán)利要求1所述的用于增強(qiáng)映像樹的可視性的方法,其中上述子節(jié)點(diǎn)區(qū)域中的至少一個是對應(yīng)于上述層次結(jié)構(gòu)中帶有至少一個子節(jié)點(diǎn)的非葉子節(jié)點(diǎn)的區(qū)域。
14.一種用于構(gòu)造可視性增強(qiáng)的映像樹的方法,包括對于指定層次結(jié)構(gòu)中的從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的每一個節(jié)點(diǎn)計(jì)算該節(jié)點(diǎn)在映像樹中的相應(yīng)區(qū)域;根據(jù)上述計(jì)算步驟的結(jié)果,將該節(jié)點(diǎn)所對應(yīng)的區(qū)域布置在指定映像樹區(qū)域內(nèi);以及若當(dāng)前節(jié)點(diǎn)為父節(jié)點(diǎn),則對于該父節(jié)點(diǎn)的相應(yīng)區(qū)域執(zhí)行權(quán)利要求1-13中任意一項(xiàng)所述的用于增強(qiáng)映像樹的可視性的方法;以及將上述可視性增強(qiáng)了的映像樹呈現(xiàn)在指定屏幕區(qū)域上。
15.根據(jù)權(quán)利要求14所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中在上述計(jì)算步驟中,使上述層次結(jié)構(gòu)中每一個父節(jié)點(diǎn)在映像樹中的相應(yīng)區(qū)域包含所有其子節(jié)點(diǎn)的相應(yīng)區(qū)域,并且使每一個節(jié)點(diǎn)的相應(yīng)區(qū)域不與其兄弟節(jié)點(diǎn)的相應(yīng)區(qū)域重疊。
16.根據(jù)權(quán)利要求14或15所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中上述計(jì)算步驟是利用分割算法實(shí)現(xiàn)的。
17.根據(jù)權(quán)利要求14所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中上述呈現(xiàn)步驟進(jìn)一步包括對上述可視性增強(qiáng)了的映像樹的整體區(qū)域大小進(jìn)行調(diào)整,以適合于指定屏幕區(qū)域的尺寸。
18.根據(jù)權(quán)利要求14所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中上述呈現(xiàn)步驟進(jìn)一步包括根據(jù)上述布置步驟的結(jié)果,以指定形狀描繪出上述節(jié)點(diǎn)的相應(yīng)區(qū)域的邊框。
19.根據(jù)權(quán)利要求18所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中上述指定形狀為矩形、多邊形、橢圓形和圓角矩形中的任意一種。
20.根據(jù)權(quán)利要求14所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中上述呈現(xiàn)步驟進(jìn)一步包括以不同的顏色填充上述層次結(jié)構(gòu)中不同深度的節(jié)點(diǎn)的相應(yīng)區(qū)域。
21.根據(jù)權(quán)利要求14所述的用于構(gòu)造可視性增強(qiáng)的映像樹的方法,其中上述布置步驟進(jìn)一步包括以不同的灰度等級填充上述層次結(jié)構(gòu)中不同深度的節(jié)點(diǎn)的相應(yīng)區(qū)域。
22.一種用于增強(qiáng)映像樹的可視性的裝置,包括偏移方向/距離確定模塊,其在構(gòu)造映像樹時確定父節(jié)點(diǎn)區(qū)域與包含其所有子節(jié)點(diǎn)的相應(yīng)區(qū)域的包圍盒的相對偏移方向和距離;以及偏移模塊,其根據(jù)上述偏移方向/距離確定模塊所確定的相對偏移方向和距離,將上述父節(jié)點(diǎn)的相應(yīng)區(qū)域與上述包圍盒相對偏移,以使該包圍盒一部分移到該父節(jié)點(diǎn)區(qū)域之外,并且該包圍盒中的每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該父節(jié)點(diǎn)區(qū)域內(nèi)。
23.根據(jù)權(quán)利要求22所述的用于增強(qiáng)映像樹的可視性的裝置,進(jìn)一步包括區(qū)域調(diào)整模塊,其在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,調(diào)整該父節(jié)點(diǎn)區(qū)域的大小,以包含其每一個子節(jié)點(diǎn)區(qū)域的全部或部分。
24.根據(jù)權(quán)利要求22所述的用于增強(qiáng)映像樹的可視性的裝置,進(jìn)一步包括位置調(diào)整模塊,其在上述父節(jié)點(diǎn)區(qū)域與上述包圍盒相對偏移之后,對該父節(jié)點(diǎn)區(qū)域連同其子節(jié)點(diǎn)區(qū)域的位置一起進(jìn)行調(diào)整,以不與其他兄弟節(jié)點(diǎn)區(qū)域相互重疊。
25.根據(jù)權(quán)利要求22所述的用于增強(qiáng)映像樹的可視性的裝置,其中上述偏移模塊使上述父節(jié)點(diǎn)區(qū)域和上述包圍盒中的一方相對于另一方偏移。
26.根據(jù)權(quán)利要求25所述的用于增強(qiáng)映像樹的可視性的裝置,其中上述偏移方向包括水平偏移方向分量和垂直偏移方向分量。
27.一種用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng),包括區(qū)域計(jì)算模塊,其為指定層次結(jié)構(gòu)中的每一個節(jié)點(diǎn)計(jì)算其在映像樹中的相應(yīng)區(qū)域;區(qū)域布置模塊,其根據(jù)上述區(qū)域計(jì)算模塊的計(jì)算結(jié)果,將上述層次結(jié)構(gòu)中的每一個節(jié)點(diǎn)所對應(yīng)的區(qū)域布置在指定映像樹區(qū)域內(nèi);根據(jù)權(quán)利要求22-26中任意一項(xiàng)的用于增強(qiáng)映像樹的可視性的裝置;以及呈現(xiàn)模塊,其將經(jīng)過上述用于增強(qiáng)映像樹的可視性的裝置處理后可視性增強(qiáng)了的映像樹呈現(xiàn)在指定屏幕區(qū)域上。
28.根據(jù)權(quán)利要求27所述的用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng),其中上述區(qū)域計(jì)算模塊在進(jìn)行節(jié)點(diǎn)區(qū)域計(jì)算時,使上述層次結(jié)構(gòu)中的每一個父節(jié)點(diǎn)在映像樹中的相應(yīng)區(qū)域包含所有其子節(jié)點(diǎn)的相應(yīng)區(qū)域,并且使每一個節(jié)點(diǎn)的相應(yīng)區(qū)域不與其兄弟節(jié)點(diǎn)的相應(yīng)區(qū)域重疊。
29.根據(jù)權(quán)利要求27或28所述的用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng),其中上述區(qū)域計(jì)算模塊利用分割算法來實(shí)現(xiàn)節(jié)點(diǎn)區(qū)域的計(jì)算。
30.根據(jù)權(quán)利要求27所述的用于構(gòu)造可視性增強(qiáng)的映像樹的系統(tǒng),其中上述呈現(xiàn)模塊進(jìn)一步包括區(qū)域調(diào)整模塊,其對上述可視性增強(qiáng)了的映像樹的整體區(qū)域大小進(jìn)行調(diào)整,以適合于指定屏幕區(qū)域的尺寸;以及區(qū)域描繪/填充模塊,其根據(jù)上述區(qū)域布置模塊和用于增強(qiáng)映像樹的可視性的裝置的結(jié)果,以指定形狀的邊框描繪出上述節(jié)點(diǎn)的相應(yīng)區(qū)域,并根據(jù)該節(jié)點(diǎn)的深度對其區(qū)域進(jìn)行填充。
31.一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括體現(xiàn)在一計(jì)算機(jī)可讀存儲媒體內(nèi)的用于執(zhí)行根據(jù)上述權(quán)利要求1-21的方法中任何一個方法的計(jì)算機(jī)可讀代碼。
全文摘要
本發(fā)明提供一種用于增強(qiáng)映像樹的可視性的方法。該用于增強(qiáng)映像樹的可視性的方法包括在構(gòu)造映像樹時,對于父節(jié)點(diǎn)區(qū)域,將其與包含其所有子節(jié)點(diǎn)區(qū)域的包圍盒相對偏移,以使該包圍盒一部分移到該父節(jié)點(diǎn)區(qū)域之外,并且該包圍盒中的每一個子節(jié)點(diǎn)區(qū)域全部或部分處于該父節(jié)點(diǎn)區(qū)域內(nèi)。本發(fā)明利用層疊效果突出映像樹中的父子關(guān)系,使得其中的結(jié)構(gòu)信息更加明顯并且容易識別,從而進(jìn)一步增強(qiáng)其可視性。根據(jù)本發(fā)明的其他方面,還提供了用于增強(qiáng)映像樹的可視性的裝置以及用于構(gòu)造可視性增強(qiáng)的映像樹的方法和系統(tǒng)。
文檔編號G06F17/30GK101063972SQ200610079019
公開日2007年10月31日 申請日期2006年4月28日 優(yōu)先權(quán)日2006年4月28日
發(fā)明者呂昊, 劉世霞, M·瓦滕伯格, 馬??? 曹楠 申請人:國際商業(yè)機(jī)器公司