專利名稱:用二維圖像制造的交互式分解的視圖的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件工具,尤其是一種處理靜態(tài)圖形并使它交互的軟件工具。
背景技術(shù):
交互性是計算機不同于其它類型信息顯示的一個關(guān)鍵性能,這些信息顯示例如是書、電視和收音機。然而,通過互聯(lián)網(wǎng)在計算機上觀看的大部分信息沒有利用這個交互性。
圖形對于顯露由子元件組成的復(fù)雜三維物體的結(jié)構(gòu)是非常有效的,這些子元件例如是機械元件、建筑環(huán)境和生物構(gòu)造。為了闡明這些物體的組合結(jié)構(gòu),解說者通常使用圖形技術(shù),例如分解的視圖,其減少或除去遮蓋并暴露出內(nèi)部元件。
然而,由于經(jīng)常將分解的視圖設(shè)計為印刷出版靜態(tài)的示意圖,因此他們常常具有兩個重大的缺陷不明確的空間關(guān)系。靜態(tài)圖形僅可以示出元件之間的一組固定的空間關(guān)系。對復(fù)雜的物體來說,從一個靜態(tài)的分解的視圖中不能清楚得知所有的元件是如何組裝在一起,如何相互作用及彼此約束。
視覺混亂。經(jīng)常將靜態(tài)圖形設(shè)計成包括觀察者可能需要的與所述物體相關(guān)的所有信息。因此,他們通常視覺混亂,這就使得如果不仔細的使用整個的示意圖,提取與特定元件或子元件集相關(guān)的特定信息是困難的。
相反,通過計算機觀看的分解的視形,則可以通過允許觀察者交互地操縱元件和動態(tài)地過濾呈現(xiàn)在圖形里的信息可以減輕這兩個問題。例如,觀察者可以交互的僅分解和組合汽車圖形的輪子裝配以便更好的理解裝配的元件是如何彼此相互作用的。在另一方面,一個靜態(tài)的、一般用途的汽車圖形在處于分解狀態(tài)時將不得不示出所有的元件,使得集中在輪子裝配上困難。通常情況下,交互式圖形比他們的靜態(tài)圖形可以更清楚、更具信息及更具吸引力。
此外,傳統(tǒng)的系統(tǒng)不能產(chǎn)生允許用戶直接操縱圖形的元件的交互式示意圖。
作為提供給靜態(tài)圖形,所需要的是一個可以平衡計算機交互性能的工具。
發(fā)明內(nèi)容
為了提供對本發(fā)明一些方面的基本理解,以下介紹了一個簡單的發(fā)明概述。這個概述不是本發(fā)明的大范圍的概述。它不是用來確定本發(fā)明的主要/關(guān)鍵部件或描述本發(fā)明的范圍。它的目的是以簡單的形式來介紹本發(fā)明的一些概念,以形成作為在以后將介紹的更詳細描述的先驅(qū)。
本發(fā)明在這里公開的和要求保護的其中一個方面包括用來建立和觀看分解的視形的裝置,在這個裝置里,觀察者可以直接操縱元件,并通過分解和組合所述分解的視圖來動態(tài)地過濾呈現(xiàn)的信息以搜索單個元件。通過使視覺混亂或不清楚的靜態(tài)分解的視形可以交互,本發(fā)明克服了現(xiàn)有技術(shù)的缺陷和不足。此外,盡管現(xiàn)有系統(tǒng)旨在提供完全自動的事先做好包裝的設(shè)計,并因此來限制對人類設(shè)計者的需要,但本發(fā)明提供了半自動、高水平的交互式設(shè)計工具,該工具可以使人類設(shè)計者快速地生成所期望的示意圖。
所述框架包括兩個主要的部件;一組半自動的、基于草圖的創(chuàng)作工具,該工具允許用戶使用二維圖像作為輸入而快速的創(chuàng)建交互的圖形;以及一個觀察系統(tǒng),其允許用戶直接分解和組合所述分解的視圖并搜索單個元件。
本發(fā)明的另一個方面,通過基于與創(chuàng)作部件和觀察部件相關(guān)的數(shù)據(jù)做出推斷來為自動操作特征(automate feature)提供了一種分類器。
為了達到前述和相關(guān)的目標,結(jié)合以下的描述和附加的附圖描述了本發(fā)明的某些示例性的方面。然而這些方面僅僅是本發(fā)明可以使用的原則里的一些方式,并且本發(fā)明意欲包括所有的這些方面以及同等的方面。當連同附圖一起考慮時,從本發(fā)明的以下詳細描述中,本發(fā)明的其它優(yōu)勢和新穎的特征將變得明顯。
圖1示出了根據(jù)本發(fā)明的一個系統(tǒng)。
圖2示出了根據(jù)本發(fā)明的繪制(renddering)過程的流程圖。
圖3A根據(jù)本發(fā)明,示出了控制缸的組合圖。
圖3B示出了控制缸的部分分解圖,該控制缸的儲罐蓋和儲罐隔板垂直地分解。
圖3C根據(jù)本發(fā)明示出了控制缸的進一步分解圖。
圖4根據(jù)本發(fā)明,示出了將圖形的靜態(tài)二維分解圖轉(zhuǎn)換成交互式圖形的創(chuàng)作過程的流程圖。
圖5根據(jù)本發(fā)明,示出了創(chuàng)建元件的流程圖。
圖6根據(jù)本發(fā)明,示出了執(zhí)行堆疊處理的流程圖。
圖7A示出了儲罐蓋相對于底部元件(root part)的中點的初始位置,該底部元件是圖3A中的控制缸的殼體。
圖7B示出了使用圖3B的分解控制缸的最大偏移堆疊參數(shù)。
圖7C示出了用于分解的控制缸的堆疊層次結(jié)構(gòu)。
圖8A示出了自動傳輸元件的組件分離。
圖8B示出了從底元件畫到頂元件806的自由形式畫線。
圖8C示出了所述系統(tǒng)從底部元件的近似中心至頂部元件的近似中心將畫線處理為直線形的分解軸。
圖8D示出了如果需要,那么用戶可以交互地調(diào)整所述分解軸。
圖9根據(jù)本發(fā)明,示出了用于分層的一個過程的流程圖。
圖10根據(jù)本發(fā)明,示出了半自動分離工具的幾何表示。
圖11示出了根據(jù)本發(fā)明可以利用的油門(節(jié)流口扼流圈節(jié)流器節(jié)氣門)。
圖12示出了用于圖8A示出的傳輸組件的蓋的半自動分離過程。
圖13示出了具有非平面開口的凹槽(cavity)的示例。
圖14根據(jù)本發(fā)明,示出了半自動深度分配工具的一個實施例的流程圖。
圖15A示出了沿分解軸分解的三個互鎖元件。
圖15B示出了互鎖元件的部分組合。
圖15C示出了控制缸的機殼的閥口里的互鎖元件的全部組合。
圖16根據(jù)本發(fā)明,示出了處理重疊的非臨近元件的一個實施例的流程圖。
圖17示出了有一個或多個假設(shè)是違規(guī)的創(chuàng)作過程的一個實施例的流程圖。
圖18根據(jù)本發(fā)明,示出了用于注解的一個實施例的流程圖。
圖19根據(jù)本發(fā)明,示出了用于觀察設(shè)計圖的一個過程的流程圖。
圖20示出了用于直觀顯示分解和組合的一個過程的流程圖。
圖21根據(jù)本發(fā)明,示出了用于元件搜索的一個過程的流程圖。
圖22根據(jù)本發(fā)明,示出了元件搜索操作。
圖23根據(jù)本發(fā)明示出了圖1的系統(tǒng)進一步使用了人工智能。
圖24示出了用來執(zhí)行所述公開的技術(shù)的計算機的模塊圖。
圖25根據(jù)本發(fā)明,示出了示例性的計算環(huán)境的模塊圖。
具體實施例以下結(jié)合附圖將描述本發(fā)明,其中相同的參考標記始終用于表示相同的部件。在以下的描述中,為了說明的目的,闡述了大量的精確細節(jié)來提供一個本發(fā)明的徹底理解。然而,明顯的是本發(fā)明可以不用這些精確細節(jié)來描述。在其它實例中,為了便于描述本發(fā)明,以方框圖的形式示出了公知的結(jié)構(gòu)和設(shè)備。
作為在本申請里所使用的,術(shù)語“部件”和“系統(tǒng)”意指與計算機相關(guān)的整體,包括硬件、硬件和軟件的結(jié)合、軟件、應(yīng)用軟件。例如,部件可以是運行在處理器上的過程、處理器、對象、執(zhí)行、運行的線程、程序和/或計算機,但不限于此。作為圖例,運行在服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是一個部件。一個或多個部件可以存在于過程和/或運行的線程里,或部件可以位于一個計算機上和/或分布在兩個或更多計算機之間。
作為在這里所使用的,術(shù)語“推斷”或“推論”通常指根據(jù)經(jīng)由事件和/或數(shù)據(jù)記錄來推出或推斷系統(tǒng)、環(huán)境、和/或來自捕獲的一組觀察者用戶的狀態(tài)的過程。例如推論可以用來確定特定的前后關(guān)系或動作,或可以產(chǎn)生整個狀態(tài)上的概率分布。推論可以是不確定性的,也就是說,感興趣的整個狀態(tài)的概率分布是基于數(shù)據(jù)和事件的考慮的。推論也可以指用來從一組事件和/或數(shù)據(jù)中組成較高水平事件而使用的技術(shù)。這些推論導(dǎo)致新事件或來自一組執(zhí)行的事件和/或存儲的事件數(shù)據(jù)的動作的構(gòu)成,而不管所述事件與暫時結(jié)束的進程相關(guān)、及所述事件和數(shù)據(jù)是否來自一個或幾個事件和數(shù)據(jù)源。
用二維圖像制造交互式分解的視圖所述公開的技術(shù)是一個新穎的框架,用來創(chuàng)建和觀察復(fù)雜的機械組合件的交互式分解的視形。不使用三維模式作為輸入,動態(tài)示意圖是根據(jù)二維圖像而建造,因此產(chǎn)生一個2.5維圖像表示。基于圖像的策略有幾個重要的好處通過在預(yù)定的結(jié)構(gòu)里簡單的尋找和創(chuàng)建對象的每個部分的圖像,可以容易的支持任意的繪制風格;這也避免了對三維模式的需要,通常,這些三維模式比圖像要難以得到或建立;及最后,使用二維圖像可以使大量存在的靜態(tài)分解的視圖平衡的在教科書、維修手冊和其它教育材料里被發(fā)現(xiàn)。
一個主要的特征是用于交互式圖形的2.5維圖像表示包括多層圖像。為了方便這種格式圖形的創(chuàng)建,提供了一組2.5維圖像創(chuàng)作工具。盡管基于層的表示在計算機圖形中不是新的,先前工作在2.5維圖像創(chuàng)作上的大部分技術(shù)都主要集中在創(chuàng)建分層的直觀顯示上。傳統(tǒng)地,可以提供工具來在數(shù)字圖片里進行選擇、彎曲、及甚至刪除整個對象而不是像素的操作。與這些通用系統(tǒng)相反的是,本發(fā)明公開的技術(shù)集中在特定的創(chuàng)作結(jié)果,包括創(chuàng)建基于圖像的交互式分解的視形。
現(xiàn)在參見圖1,這里示出了根據(jù)本發(fā)明的一個系統(tǒng)100。所述系統(tǒng)100包括接收一個或多個二維圖像104以作為用于處理的輸入的創(chuàng)作部件102。將二維圖像轉(zhuǎn)換成交互式分解的視像的挑戰(zhàn)是表示元件是如何彼此互相組合在一起的。創(chuàng)作部件102是一組當分解和組合元件時可以便于約束元件的動作的半自動工具,用來將元件分層以當元件移動時完全地彼此咬合,及用來使用元件標記和導(dǎo)航來注解所述圖形,這些導(dǎo)航可以明確的示出元件是如何相對于彼此移動的。創(chuàng)作部件102允許用戶通過簡單的、基于草圖的交互而快速的創(chuàng)建令人佩服的交互式圖形。
創(chuàng)作部件102連接于幫助觀察者動態(tài)地過濾呈現(xiàn)在圖形里的信息的交互式觀察部件106。所述觀察部件106支持許多有用的交互。尤其是,觀察部件106可以便于交互式圖像輸出108以允許用戶可以直接分解和組合所述分解的視圖,及搜索單個的元件。這些交互幫助觀察者理解元件與對象的整個結(jié)構(gòu)之間的空間關(guān)系。
基于圖像的系統(tǒng)100可以直接支持任意的繪制風格,消除了對三維模式的需要,并允許大量的復(fù)雜對象的存在的靜態(tài)圖形的平衡。
現(xiàn)在參考圖2,這里示出了根據(jù)本發(fā)明繪制過程的流程圖。然而,為了簡單說明的目的,這里示出的一個或多個方法都以流程圖的形式來表示和描述以作為一系列的步驟。可以理解和明白的是本發(fā)明并不受限于步驟的順序,因為根據(jù)本發(fā)明,一些步驟以不同的順序發(fā)生和/或與來自這里示出的和描述的其它步驟同時發(fā)生。例如,現(xiàn)有技術(shù)可以理解和明白的是方法可選擇地的表示為一系列相關(guān)的狀態(tài)或事件,諸如狀態(tài)圖形里的。此外,根據(jù)本發(fā)明,不需要所有示出的步驟來執(zhí)行方法。
在步驟200,接收二維圖像作為系統(tǒng)的輸入。在步驟202,用戶指定圖像元件交互方式。在步驟204,在分解和組合的過程中約束元件的移動。在步驟206,將元件分層以在相對于彼此運動的過程中完全咬合。在步驟208,輸出交互式圖像。然后過程到達停止模塊。
圖3A-3C示出了根據(jù)本發(fā)明處理過的的二維圖像以提供一個用交互形式來顯示汽車控制缸的部分的分解。圖3A根據(jù)本發(fā)明示出了控制缸的組合視圖300。圖3B示出了控制缸的部分分解的視圖302,具有暴露在垂直方向的儲罐303、儲罐蓋304和儲罐隔板306。用戶僅僅需求選擇以及拖動蓋304以分解和暴露基本的部分,例如儲罐303以及儲罐隔板。圖3C示出了根據(jù)本發(fā)明控制缸的進一步分解的視圖308。在這里,用戶可以選擇(或抓住)并拖動末端310、推桿312來分解并暴露出相關(guān)的防塵套314和推桿護圈316。所述相反過程也是正確的,即用戶可以選擇并拖動推桿312向蓋304移動以將元件組合成在圖3A和圖3B中觀察到的圖像。注意的是不需要限定用戶抓住末端310,而是可以抓住任何插入元件并拖動它來分解或組合。例如,用戶可以抓住防塵套314并水平的向蓋304拖動以將它組合,而將推桿312暴露在分解視圖里。相反過程也是正確的,當在組合模式時,抓住防塵套314并將它向外拖動(遠離蓋304)以暴露出從蓋304中分離的護圈316和套314。然而,推桿312將繼續(xù)組合在套314和護圈316里。在可選擇的實施例里,當用戶為了分解過程而抓住插入元件從中心點離開時,在同一軸上的所有元件將自動分解。在另一個實施例里,只有緊挨著拖動點、但遠離中心點的第一元件可以與其它分解的元件一起分解開來。本領(lǐng)域的任何技術(shù)人員都可以明白在與拖動點相關(guān)的元件的分解和組合上的其它變化都可以實現(xiàn)。
現(xiàn)在參考圖4,這里示出了根據(jù)本發(fā)明用于將圖形的靜態(tài)二維圖像分解的視圖轉(zhuǎn)換成交互式圖形的創(chuàng)作過程的流程圖。創(chuàng)建交互式基于圖像的圖形包括幾個步驟。在步驟400,在輸入端接收二維輸入圖像。作為輸入,所述系統(tǒng)不僅接收具有所有可見組成塊(例如,在完全分解的狀態(tài))的對象的單個圖像,也接收圖像集,每個圖像具有一個組成塊。在步驟402,將輸入的圖形分割成元件。在一個實施例里,可以作出一個假設(shè),即使用正視圖投影來呈現(xiàn)對象,以在專門的圖例里作為典型。然而,根據(jù)本發(fā)明,也可以處理透視圖投影來提供元件的分解和組合。如果需要,透視圖投影的圖像可以適當?shù)貜澢?。在使用單一圖像作為輸入的情況下,首先將靜態(tài)圖形分割成與描繪的對象的組成塊相對應(yīng)的元件。在步驟404,將元件編組成堆疊。堆疊定義當對象在分解和組合的時候,元件相對于彼此運動的方式。在步驟406,將元件分解成碎片以準備用來分層。在步驟408,通過給每個元件分配深度值來將元件和碎片分層,這樣元件可完全的彼此咬合。在步驟410,用戶給元件添加上期望的注解,諸如標記和導(dǎo)航。然后過程到達停止模塊。
如先前所指示的,根據(jù)本發(fā)明的圖形包括元件和堆疊。每個元件包括與元件相對應(yīng)的圖像,以及定義元件的圓度輪廓的α模板。為了獲得對象的各個部分之間的相對深度的正確的印痕,也給元件分配深度值來確定他們是如何分層的。當兩個或多個元件互鎖以至于他們不能適當?shù)胤蛛x(例如使用“繪畫家算法”)時,給每個元件分配一個深度值則是不夠的。為了解決這個問題,將元件分成碎片。通過給每個碎片指定恰當?shù)纳疃戎?,可以獲得以復(fù)雜的方式交迭的元件之間的正確的咬合關(guān)系。
為了使元件動態(tài)的分解和組合,可將元件編組成堆疊,堆疊定義了允許元件如何相對于彼此運動。更精確的說,堆疊是共享相同分解軸的元件的有序序列。所述分解軸是指定一個直線的矢量,堆疊元件可以沿這個直線移動。堆疊里的第一個元件是堆疊的底部。在一個實施例里,每個元件可以只是一個堆疊的非底部成員。然而,相同的元件可以是許多堆疊的底部。因此,許多堆疊可以形成如以下依據(jù)圖7A-C示出的樹。
現(xiàn)在參考圖5,這里示出了根據(jù)本發(fā)明用來創(chuàng)建元件的流程圖。在步驟500,在系統(tǒng)的輸入端接收靜態(tài)圖形。為了幫助用戶將單個的靜態(tài)示意圖分割成元件,創(chuàng)作系統(tǒng)包括了一個智能切割工具來便于切割所描述的對象的獨立部件。用戶簡單地將輸入圖像載入接口,然后利用切割工具將適當?shù)脑吔缛抗串嬈饋怼T诓襟E502,通過全部勾畫元件邊界來定義元件。在步驟504,然后在勾畫的邊界分離元件。在一些情況下,部分咬合在輸入的示意圖的部件可能在部件上具有洞,因此需要被填充。在步驟506,如果需要,將洞填充。這可以使用傳統(tǒng)的圖形軟件包來手動實現(xiàn),也可以由自動洞填充技術(shù)來實現(xiàn)。然后過程到達停止模塊。
現(xiàn)在參考圖6,這里示出了根據(jù)本發(fā)明堆疊過程的一個實施例的流程圖。創(chuàng)建元件之后,通過基于勾畫的交互作用,可以將元件編組成堆疊。在步驟600,在分解的視圖里接收元件。為了創(chuàng)建新的堆疊,用戶可以通過畫出一個任意形式畫線來連接恰當?shù)囊唤M元件,如在步驟602所指示的。在步驟604,這些部件被編組成堆疊,并保持由堆疊定義的元件順序。在步驟606,假設(shè)指定的部件當前正處于完全分解的結(jié)構(gòu)狀態(tài),并然后推斷出一個分解軸。為了確定分解軸,系統(tǒng)用一條直線來連接第一和最后堆疊部件的中每一個部件的邊界框的中心。在步驟608,系統(tǒng)為與這個設(shè)計圖一致的新堆疊定義初始位置、當前偏移、及最大偏移。每個元件的初始位置通過默認為從前面的元件到分解軸的最小偏移來設(shè)定。由于元件在他們的完全分解的設(shè)計圖里開始,系統(tǒng)為每個元件設(shè)定的最大偏移為從元件的初始位置到它的當前完全分解的位置的距離。
在步驟610,一旦創(chuàng)建了新的堆疊,用戶然后可以通過多個定向處理操作來手動地調(diào)整堆疊參數(shù)。例如,為了修改分解軸,用戶可以拖出一條固定在堆疊底部的線,并且然后將它的矢量調(diào)整到期望方向。在此操作過程中,堆疊的軸可交互的更新,因此用戶可容易的看到元件是如何排列的。為了改變元件的初始位置和最大偏移,用戶選擇定向處理模式,并且然后將部件拖到適合完全分解和組合的位置。
圖7A-7C示出了不同堆疊的樹和為圖3A-3C中的控制缸系統(tǒng)300的一些裝配產(chǎn)生的參數(shù)。圖7A示出了儲罐蓋304相對于底部元件的中心點700的初始位置,所述底部元件是圖3A中的控制缸300的殼體702。所述初始位置指定了元件在它完全組合狀態(tài)時相對它前面元件的位置。圖7B示出了利用圖3B中展開的控制缸302的最大偏移堆疊參數(shù)。所述最大偏移是一個元件相對于它前面的元件可以移動的最遠距離。這里,蓋304被展開以示出它距離隔板306的最大偏移(MaxOCD),及隔板306被展開以示出它距離殼體702的最大偏移(MaxORD),它們都沿由兩個相應(yīng)的矢量定義的分解軸704。
圖7C示出了用于展開的控制缸706的堆疊層次結(jié)構(gòu)。對于它的每個組成元件,堆疊都存儲了三個參數(shù)初始位置;當前偏移,保持元件從初始位置到當前放置位置的軌跡;及最大偏移,該偏移指示了一個元件在堆疊中可以離開它前面的元件多遠。通過給定這些堆疊參數(shù),每個元件的位置就都僅僅依靠它的在前元件的位置。
這里示出了五個堆疊(STK1-STK5),其中箭頭指示每個堆疊里的元件的順序。從殼體702(也就是底部元件)到儲罐蓋304定義為第一堆疊(STK1)。從殼體702到單向閥708定義為第二堆疊(STK2)。從殼體702到第二單向閥710定義為第三堆疊(STK3)。從殼體702到副皮碗(secondary cup)712定義為第四堆疊(STK4)。從儲罐蓋304到推桿312定義為第五堆疊(STK5)。
圖8A-8D示出了根據(jù)本發(fā)明定義元件順序的各個方面和使用自由形式畫線的分解軸。圖8A示出了催化轉(zhuǎn)換器的組件分離800。圖8B示出了從底部元件804畫到頂部元件806的自由形式畫線802。畫出所述自由形式畫線以將一組元件編成堆疊。圖8C指出了系統(tǒng)將畫線802從底部元件804的邊界框的中心到頂部元件806的邊界框的中心處理成直線形的分解軸808。畫線與分解軸一樣直接指示了堆疊里元件的順序。圖8D示出了用戶調(diào)整軸808以將頂部元件806的中心點移動到底部元件804的中心點的左邊。
現(xiàn)在參見圖9,根據(jù)本發(fā)明,這里示出了用于分層的一個過程的流程圖。所有的堆疊創(chuàng)建之后,如果需要,將元件分割,然后將它們分層以在它們之間產(chǎn)生相對深度的正確印痕。在步驟900,產(chǎn)生堆疊。在步驟902,執(zhí)行分離,為互鎖的元件執(zhí)行深度分配。外部元件分裂成前和后碎片。在步驟904,通過全部勾畫閉合的邊界來分離外部元件以產(chǎn)生曲線C。在步驟906,從曲線C上的每一個像素向遠離觀察者的任何軸投射出射線。在步驟908,將與曲線C相交兩次的所有射線添加到咬合曲線C0的咬合部分。在步驟910,系統(tǒng)沿分解軸推出曲線C0。在步驟912,將突出區(qū)域里的像素分配到前碎片。所有其它像素分配到后碎片。在步驟914,通過設(shè)定相應(yīng)的深度值,將內(nèi)部元件分層以在外部前碎片和外部后碎片之間通過。然后過程到達停止模塊。
用戶可以使用切割工具來手動的將元件分成碎片,然后明確地給圖形里的每個元件或碎片分配深度值。然而,對于具有許多部件的對象,這種手動分層指定的形式是冗長乏味的。為了降低創(chuàng)作者的負擔,本發(fā)明公開的系統(tǒng)提供了半自動分離和深度分配工具,可以用于大量互鎖元件的分類。
半自動分離現(xiàn)在參見圖10,這里示出了根據(jù)本發(fā)明半自動分離工具的幾何表示。典型地,當兩個元件互鎖時,一個部件粗糙地鑲嵌在另一個里面。在這種情況下,通??梢酝ㄟ^將外部元件分成前和后碎片,然后將內(nèi)部元件分層以穿過他們來獲得正確的分層。為了分離外部元件,用戶全部勾畫(在切割工具的幫助下)凹槽或開口的封閉邊界1000以圈住內(nèi)部塊。如圖10所示的,所述凹槽的三維邊界稱為B。用戶畫出的曲線C也是B在圖像平面1002上的投影。給出曲線C,所述系統(tǒng)計算曲線C的咬合部分C0,咬合部分C0定義為在邊界B上的第一點1004和在邊界B上的第二點1006之間。這也可以定義為內(nèi)部元件1008在外部元件1010后面穿過的地方。系統(tǒng)然后使用所述咬合曲線C0來將封閉部件分裂成兩個碎片(前碎片和后碎片)。
通過計算,系統(tǒng)為任何一個貫穿開口的三維點P求出曲線C0,其中P從B的后面穿過(也就是說,超出了觀察者的視線)。由于元件被約束在它們的堆疊之內(nèi)移動,因此在分解方向r移動時,只有貫穿開口的點可以考慮到。
暫時地參見圖11,這里示出了根據(jù)本發(fā)明可以使用的限制。這里,系統(tǒng)可以假設(shè)曲線1100沒有自我相交的,及與分解軸1104平行的線1108與曲線C相交不超過兩次。在這點上,曲線1106沒有符合這個限制,平行于分解軸1104的線1108與曲線1106相交了四次,如在交叉點指示的I1、I2、I3和I4。
再參見圖10,將這個限制施加到曲線C的形狀上,并忽視切線的情況,r在圖像平面1002上的投影將與曲線C剛好相交兩次(在點C1和C2)。將C1設(shè)為遠離觀察者的第一個交叉點。通過默認,假設(shè)P在B前面的C1和B后面的C2穿過,這與通常情況相對應(yīng),其中當P遠離觀察者移動時,P進入由B定義的開口。給定這個假設(shè)后,圖10就明確了用來計算咬合曲線C0的基本步驟。通過從C上的每個像素向分解方向投射出射線來估量貫穿B的每個點的路徑。如果射線再次與C相交,則將與第二個交叉點對應(yīng)的像素添加到咬合曲線C0中。一旦曲線處理完成,通過從邊界B上的每個像素開始,將像素的線在分解方向光柵化,來推出咬合曲線C0。將遇到的每個像素都添加到元件的前碎片1012,及剩余像素組成后碎片1014。一旦到達了圖像的邊界,就停止推出。
現(xiàn)在參見圖12,這里示出了用于圖8A的傳輸部件的蓋1200的半自動分離過程。用戶首先使用切割工具來全部勾畫出具有曲線C(也表示為曲線1202)的邊界凹槽以產(chǎn)生曲線1202。然后系統(tǒng)從曲線C上的每個像素1206向遠離觀察者的分解軸的方向投射出射線1204。對于與曲線C相交兩次的所有射線1206,將交叉的第二個點1208添加到曲線C的咬合部分C0。系統(tǒng)沿分解軸推出咬合曲線C0。將位于推出區(qū)域1210里的所有像素分類成前碎片1212,及將剩余的像素分類成后碎片1214。現(xiàn)在系統(tǒng)可以設(shè)定渦輪1216的深度值位于前碎片1212和后碎片1214的深度值之間來產(chǎn)生正確的咬合關(guān)系。值得注意的是,假設(shè)可以為不同形狀和方向的封閉凹槽的整個類別產(chǎn)生正確分離。特定的是,所述假設(shè)沒有限制B位于與分解軸正交的平面里。
現(xiàn)在參見圖13,這里示出了具有非平面開口的凹槽1300的示例。在這種情況下,由于所述的假設(shè)成立,因此系統(tǒng)可以計算正確的分離。由B所定義的開口具有使得B為非平面的槽口1302。只要P為了所有的交叉點對C1和C2而經(jīng)常在B前面的C1點穿過,所述分離算法就可以獲得正確的結(jié)果。
所述默認分離假設(shè)對于大量的互鎖元件都是有效的。然而,如果B被導(dǎo)向以至P從C1的后面顯露出來,并從C2的前面穿過,那么所述分離是不能支持的。沒有任何用戶干涉,所述系統(tǒng)可以計算出不正確的分離。場景的俯視圖將清楚地示出B在r前面的C1上。然而,為了獲得正確的結(jié)果,用戶可以手動地指示系統(tǒng)來轉(zhuǎn)化分離計算,這可以通過在分離算法里變換分解方向來很容易的做到。
半自動深度分配現(xiàn)在參見圖14,這里示出了根據(jù)本發(fā)明半自動深度分配工具的一個實施例的流程圖。通常來講,堆疊里的非相鄰元件可以交迭,如圖15A-C里示出的。因此,不需要在單個通道里從底部向外傳送深度值。然后深度分配變成了約束滿意度的問題。一旦分離了所有合適的部件,用戶可以請求系統(tǒng)推斷出元件層次。在步驟1400,系統(tǒng)接收用于處理的完成的碎片。對所有成雙的元件,為了確定所述元件是否互鎖,系統(tǒng)使用了直接推斷法。在步驟1402,作出一個檢查來確定一個元件的橫截面(相對于分解方向)是否鑲嵌在另一個元件的由凹槽開口(如果這里有)定義的曲線的橫截面里。在步驟1404,系統(tǒng)確定在元件的橫截面里是否有鑲嵌。可以使用大量的約束過程來闡明鑲嵌情況。在步驟1406,對于任何互鎖元件,添加內(nèi)部元件位于后碎片的前面及前碎片的后面的約束。在步驟1408,確定互鎖關(guān)系是否一致。如果是,在步驟1410,使用當?shù)丶s束傳送技術(shù)來解決不同約束的系統(tǒng)。然后過程到達停止模塊。然而,如果關(guān)系不一致,流程從1408指向1412,來通知用戶不一致。
在步驟1404,如果沒有鑲嵌,流程指向1414來考慮任何兩個不互鎖的元件。對于不互鎖元件,當考慮他們在堆疊里的順序時,假設(shè)它們的深度值是嚴格的上升或下降的。這樣,對于一個堆疊里的任何兩個不互鎖元件,添加約束來將元件分層在其它元件前面的堆疊的末端附近。然后流程指向1408,再次執(zhí)行如上所描述的一致性檢查。
如前面所描述的,用戶可以請求系統(tǒng)從分離的元件中推斷出元件層次。盡管直接推斷法在許多情況下都使用,但依然會有失敗的情況。例如,當內(nèi)部元件具有不能鑲嵌在外部元件內(nèi)部的球狀末端時,直接推斷法就可能失敗。為了處理這種情況,用戶可以手動干涉來指定正確的互鎖關(guān)系,如在流程1404到1416所指示的。例如,用戶可以分離球狀元件以使橫截面假設(shè)支持實質(zhì)上鑲嵌在封閉部件里的分離。從流程1416至1418再次執(zhí)行如上所描述的一致性檢查。
圖15A-C示出了堆疊里可以互鎖的多個元件。圖15A示出了沿分解軸分解的三個互鎖的元件1500、1502和1504。圖15B示出了所述互鎖元件的部分組合。圖15C示出了控制缸300的殼體702的端口1506里的互鎖元件的全部組合。由于半自動深度分配算法支持所有的假設(shè),因此在這個情況下,算法可以正確地為所有元件推斷出深度。也就是說,支持橫截面假設(shè),堆疊里的所有不鎖定元件可以按順序分層是真的,這個順序就是接近于堆疊末端的元件位于沒有可視物品的上面,與外部元件互鎖的內(nèi)部元件和不可見物品可以分層在外部元件前面和碎片后面之間。
現(xiàn)在參見圖16,這里示出了違反一個或多個假設(shè)的創(chuàng)作過程的一個實施例的流程圖。由于系統(tǒng)設(shè)計為半自動工具的集合,因此沒有強迫用戶去選擇全自動過程或完全手動的交互。相反,在創(chuàng)作過程中的任何步驟,系統(tǒng)可流暢的接收手動指導(dǎo)。在步驟1600,系統(tǒng)接收創(chuàng)作框架。在步驟1602,系統(tǒng)根據(jù)預(yù)定的假設(shè)來處理情況。在步驟1604,系統(tǒng)確定是否發(fā)生違規(guī)。如果是的,在步驟1606,系統(tǒng)提示用戶手動指導(dǎo)。例如,如果系統(tǒng)由于分離假設(shè)中的一個是不可用的而不能找到正確的分離,用戶就可以手動的將元件分割成前碎片和后碎片,并使用自動深度分配工具推斷成層。相似地,如果系統(tǒng)不正確的猜測兩個元件是否鑲嵌在一起,用戶可以首先明確地指定正確的互鎖關(guān)系,然后使用系統(tǒng)的約束解決來分配深度值。在步驟1608,系統(tǒng)確定手動過程是否要繼續(xù)。如果是,流程回到1606。如果不是,流程指向1610來回到自動過程。在步驟1612,系統(tǒng)確定這個情況的過程是否完成。如果沒有,流程回到1602。然而,如果那個情況的過程已經(jīng)完成,流程指向停止模塊。如果沒有違規(guī)發(fā)生,流程是從1604到1612來確定過程是否結(jié)束。
現(xiàn)在參見圖17,這里示出了根據(jù)本發(fā)明用于注解的一個實施例的流程圖。作為隨意的最后步驟,用戶可以用標記注解元件和添加指導(dǎo)規(guī)則來明確的指示元件是如何相對于彼此移動的。在步驟1700,用戶為需要標記的每個元件指定合適的標記文本。為了指定應(yīng)該將標記放置在哪里,用戶點擊來設(shè)定固定點(典型地是在標記的元件上面或附近),然后將標記拖到期望的位置,如步驟1702所指示的。當圖形被設(shè)計好之后,系統(tǒng)確保標記和標記的固定點之間的偏移保持不變,以便標記與它相應(yīng)的元件嚴格地移動,如在步驟1704所指示的。在步驟1706,系統(tǒng)從標記的中心至它的固定點分離出一條線來在元件和它的外在標記之間建立一個關(guān)聯(lián)。在步驟1708,用戶通過選擇兩個元件并拖出一條以期望的方式連接所述兩個元件的線來創(chuàng)建指導(dǎo)規(guī)則。線的每個結(jié)束點視為粘住與它對應(yīng)的元件的固定點。因此,當元件移動時,導(dǎo)航可合適地適應(yīng)。通過默認,導(dǎo)航可繪制為虛線。然后過程到達停止模塊。
現(xiàn)在參見圖18,這里示出了根據(jù)本發(fā)明用于觀察設(shè)計圖的一個過程的流程圖。為了動態(tài)的顯示分解視圖的示意圖,提供了軟件工具來支持大量有用的交互來幫助用戶從圖形中選取信息。使用了局部繁衍算法(local propagationalgorithm)來設(shè)計圖形的元件。在步驟1800,所述算法通過以拓撲次序來回移動堆疊的層次來工作。在步驟1802,所述算法然后基于元件的先前位置和當前偏移,連續(xù)的計算和更新每個元件的位置。盡管局部繁衍算法不能處理循環(huán),由于堆疊的層次構(gòu)成如上所提及的樹的形狀,因此這也不成問題。一旦計算了所有的元件位置,系統(tǒng)在每個元件和它的碎片的指定深度將每個元件和它的碎片分離,如在步驟1804所指示的。在步驟1806,用戶可以使標記和導(dǎo)航再現(xiàn)在觀察接口以顯示注解。然后過程達到停止模塊。為了阻止可視的混亂,系統(tǒng)只再現(xiàn)被其它元件咬合的固定點的標記和導(dǎo)航。
現(xiàn)在參見圖19,這里示出了用于動畫的分解和組合的一個過程的流程圖。所述觀察程序支持簡單但有用的交互,該交互允許觀察者通過點擊按鈕來分解或組合整個圖形。這樣,在步驟1900,用戶根據(jù)輸入設(shè)備控制來執(zhí)行這個功能。為了制造期望的動畫,所述系統(tǒng)依據(jù)用戶選擇的動畫,平滑地向每個元件的全部分解或全部組合狀態(tài)插入元件的當前偏移,如步驟1902所指示的。過程達到停止模塊。
現(xiàn)在參見圖20,這里示出了根據(jù)本發(fā)明直接操作過程的流程圖。為了讓人類觀察者集中在交互和指定元件組的空間關(guān)系上,而不需要觀看所有分解形式的對象的部件,本發(fā)明通過約束的直接操作可允許用戶選擇地分解和組合圖形的一部分。在步驟2000,用戶選擇用于操作的部件。但選擇好部件之后,觀察者可通過將元件在它的堆疊里向外或向內(nèi)拖動來交互地修改該元件的當前偏移。由于無論用戶怎么拖動,元件只能沿它的分解軸移動,因此所述操作是被約束的。當用戶開始交互時,系統(tǒng)首先記錄元件哪里被抓住了,如步驟2002所指示的。在步驟2004,當用戶拖動時,系統(tǒng)計算當前指示器位置在分解軸上的投影。在步驟2006,系統(tǒng)設(shè)定選擇的元件當前偏移,因此抓住的點向投影的點滑動。在步驟2008,系統(tǒng)確定用戶是否超出了拖動范圍。如果用戶將元件拖出了它的完全組合和分解狀態(tài),系統(tǒng)試圖修改先前元件的當前偏移來調(diào)節(jié)所述交互。按順序考慮每個先前元件,直到到達底部,如步驟2010所指示。在步驟2012,對每個先前元件,只要所述先前元件沒有超出它的拖動范圍,系統(tǒng)就移動所述先前元件來適應(yīng)用戶的拖動。如果先前元件已超出了它的拖動范圍,并且所選擇元件的抓住點依然沒有到達用戶拖動所指定的投影點,那么就要考慮下一個先前元件。因此,如果所有它的后代(直到處理組件)要么完全組合要么分解,則僅僅移動先前元件。然后流程達到停止模塊。這樣,用戶可以有效的將一組元件推在一起或?qū)⑺麄円粋€接一個的推開。如果沒有檢查到超出范圍的拖動,流程從2008進行到2014來處理元件。然后流程達到停止模塊。
現(xiàn)在請參見圖21,這里示出了根據(jù)本發(fā)明用于元件搜索的一個過程的流程圖。在一些情況下,觀察者可能想要查找當對象處于完全組合狀態(tài)時而隱藏看不見的元件,如步驟2100所指示的。在步驟2102,本發(fā)明允許用戶通過在一個所有對象的部件列表里查找元件的名稱或圖片來搜索元件,而不需要分解整個的圖像,然后可視的搜索所需要的部件。在步驟2104,觀察軟件分解對象以展現(xiàn)所請求的元件,為了提供適合的銜接,還同時在堆疊里有其它元件圍繞著這個元件。然后過程到達停止模塊。
現(xiàn)在參見圖22,這里示出了根據(jù)本發(fā)明的元件搜索操作。系統(tǒng)提供搜索窗口2200來便于尋找隱藏部件。這里,用戶選擇尋找一個隱藏元件,該隱藏元件是設(shè)備2204的揚聲器2202。當對所有部件輸入標記之后,系統(tǒng)以一種容易表示和搜索的格式存儲了這些標記。這里,用戶向檢索字段輸入術(shù)語“揚聲器”,并選擇搜索按鈕2206。系統(tǒng)圖解地將所述揚聲器元件展現(xiàn)在搜索窗口2200的上部2208??蛇x擇的,窗口2200提供一個裝置,用戶借以該裝置可以向下滾動標記(例如可以按字母的順序來存儲)的列表2210到標記“揚聲器”,然后選擇它。與這對應(yīng)的,系統(tǒng)自動的分解設(shè)備2204來提供沿分解軸分解的視圖2212以顯示隱藏揚聲器2202在設(shè)備元件之中的相對位置。
現(xiàn)在參見圖23,根據(jù)本發(fā)明的一個實施例,示出了圖1進一步使用人工智能的系統(tǒng)。本發(fā)明可以使用各種基于用于實施本發(fā)明的各方面的配置的人工智能。例如,用于為元件確定深度值的過程可以通過自動分類器系統(tǒng)和過程2302來變得方便。
分類器是一個函數(shù),該函數(shù)將輸入的屬性相量X=(X1,X2,X3,X4,xn)映射為輸入屬于類的置信度(confidence),也就是說,f(x)=confidence(class)。這種分類可以使用概率和/或基于靜態(tài)的分析(例如,分析實用性和花費)來預(yù)測或推斷出用戶期望自動指定的動作。
支持向量機(SVM)是可以使用的分類器的實例。所述SVM通過在可能輸入的空間里查找超曲面來操作,超曲面用來將觸發(fā)條件從非觸發(fā)事件中分開。直觀地,這使得正確的分類用來測試附近測試數(shù)據(jù),而不等同于訓(xùn)練數(shù)據(jù)。其它直接的和非直接模式的分類方法包括,例如單純的貝葉斯、貝葉斯定理的網(wǎng)絡(luò)、決策樹(naive bayes,bayesian network,decision trees)和概率分類模式來提供可以使用的獨立的不同模式。這里使用的分類也包括用來開發(fā)優(yōu)先的模式的統(tǒng)計回歸(statistical regression)。
從本說明書可容易的明白,本發(fā)明可以使用分類器,該分類器為明確訓(xùn)練(如通過基因訓(xùn)練數(shù)據(jù))和非明確訓(xùn)練(如通過觀察用戶行為,接收外來信息)。例如,通過在分類構(gòu)造器里學(xué)習(xí)或訓(xùn)練語法來配置SVM并以選擇程序為特征。這樣,分類器可用來自動地執(zhí)行大量功能,包括根據(jù)預(yù)定條件或?qū)W習(xí)過程來確定元件是如何被堆疊的,什么元件是堆疊的一部分,該元件是什么及如何被分離的,什么注解是與元件相關(guān)的,元件是如何被注解的,當與創(chuàng)作和觀察部件一起工作時使用和更新用戶參考,處理互鎖元件等等,但不限于此。
在一個實施例里,本發(fā)明的結(jié)構(gòu)可配置為適合任意的分級路徑。為了獲得更多簡潔的分解視圖的設(shè)計圖,說明者有時使用非直線分解軸來排列元件,所述分解軸經(jīng)常用導(dǎo)航來指示。公開的基于約束的設(shè)計圖框架方便擴展支持任意的、用戶指定的分解軸。
在另一個實施例里,可使用動態(tài)注解。為了支持這里,系統(tǒng)確定如何動態(tài)地排列這些其后的信息來考慮變化交互式圖形的設(shè)計圖。
本發(fā)明的結(jié)構(gòu)支持元件突出和不突出。在另一個實施例里,為所描述對象的突出和不突出的特定元件提供具有基于圖像的工具的圖形創(chuàng)作式有用的。這些工具類似于考慮執(zhí)行特定圖像轉(zhuǎn)換的感性效果的智能過濾器。突出操作可用在顯示事件以高亮顯示重要的元件。
在另一個實施例里,支持語義放大(semantic zooming)。對于相當復(fù)雜的對象,介紹細節(jié)的多個水平是有用的,允許觀察者為對象的特定部分交互的控制呈現(xiàn)信息的多少。
可以支持深度暗示。從二維圖像創(chuàng)建的交互圖形在交迭層的地方有時具有“變平的”顯示。當觀察圖形時可自動呈現(xiàn)簡單的深度暗示(如下降陰影)來澄清這些層之間的空間關(guān)系。
在本說明書的全文中,“直接交互或操作”指任何包括直接或立即的用戶控制的用戶交互。通常,這些用戶控制包括用戶使用輸入機械來促使對象或元件被拖動、被調(diào)整大小或被拉,輸入機械例如是鼠標、軌跡球或其它輸入裝置。在一個實施例里,系統(tǒng)易于直接操作(這里用戶可以將元拖到周圍)和非直接用戶交互(這里用戶使用搜索接口操作或展開或隱藏元件或?qū)ο蟛⑸鷦拥姆旨?組合)。
可以明白的是直接和非直接的用戶交互不限于普通的輸入設(shè)備機械,諸如鼠標、鍵盤、凹形墊,也可以使用聲音控制來開始對象的分解、對象的折疊、及搜索元件或?qū)ο?。當使用聲音控制時,用戶將根據(jù)用戶的指令訓(xùn)練所述系統(tǒng),并將這些指令輸入麥克風來處理和執(zhí)行。
總的來說,分解視圖對解釋復(fù)雜對象的內(nèi)部結(jié)構(gòu)是至關(guān)重要的。交互式數(shù)字圖形對允許用戶通過在呈現(xiàn)的題材中以動態(tài)地修改方式來從示意圖中選取特定信息是尤其重要的。本公開的說明書描述了一個新穎的框架,該框架可用來創(chuàng)建和觀察以靜態(tài)圖像作為輸入的交互式分解的視形。更特別地是,提供了一組創(chuàng)作工具,使創(chuàng)建這些圖形的工作變的容易,還提供了觀察程序,使用戶可以更好的理解元件和對象的整個結(jié)構(gòu)之間的空間關(guān)系。
現(xiàn)在參見圖24,這里示出了用來執(zhí)行本公開的說明書的計算機的模塊圖。為了對本發(fā)明的各個方面提供附加背景,圖24及以下接著的討論用來提供合適的計算環(huán)境2400的簡單的、通常的描述,在這個計算環(huán)境里可以執(zhí)行本發(fā)明的各個方面。而在以上所描述的以計算機可執(zhí)行指令為通常形式的本發(fā)明可運行在一個或多個計算機上,本領(lǐng)域的技術(shù)人員可認識到,本發(fā)明也可以與其它程序模塊結(jié)合和/或作為硬件和軟件的結(jié)合方式來執(zhí)行。
通常來說,程序模塊包括執(zhí)行特定任務(wù)或執(zhí)行特定抽象數(shù)據(jù)類型的過程、程序、部件、數(shù)據(jù)指令等。此外,本領(lǐng)域的技術(shù)人員將明白,本發(fā)明的方法可以與其它計算機系統(tǒng)結(jié)構(gòu)一起運行,所述計算機系統(tǒng)結(jié)構(gòu)包括單處理器或多處理器系統(tǒng)、微型計算機和個人計算機、手提計算設(shè)備、基于微處理器或可編程的電子設(shè)備及類似的結(jié)構(gòu)。這些結(jié)構(gòu)中的每一個都可用來耦合一個或多個相關(guān)的設(shè)備。
所示出的本發(fā)明各方面也可在分布式計算環(huán)境里執(zhí)行,在該計算環(huán)境里通過通信網(wǎng)絡(luò)連接的遠程處理設(shè)備可執(zhí)行一定的任務(wù)。在分布式計算環(huán)境里,程序模塊可存儲在當?shù)氐暮瓦h程存儲設(shè)備里。
計算機典型地包括各種計算機可讀媒體。計算機可讀媒體可以是任何可被計算機讀取的可用媒體并包括易失和非易失的媒體、可移動和不可移動的媒體。用示例的形式,但不是限制,計算機可讀媒體可包括計算機存儲媒體和傳播介質(zhì)。計算機存儲媒體包括易失和非易失的,移動和不可移動的媒體,所述媒體對于諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)之類信息的存儲可以用任何方法和技術(shù)來實施。計算機存儲媒體包括RAM、ROM、EEPROM、閃速存儲器或其它存儲技術(shù)、CD-ROM、數(shù)字化視頻光盤(DVD)或其它光盤存儲器、磁帶盒、磁帶、磁盤存儲器或其它磁性存儲設(shè)備、或任何其它可用來存儲所期望的信息和可被計算機讀取的媒體,但不限于這些。
傳播介質(zhì)典型地包含計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它諸如是載波的調(diào)諧數(shù)據(jù)信號和其它傳輸裝置里的數(shù)據(jù),并包括任何信息傳遞介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”指具有一個或多個特征集合或以將信息編碼成信號的方式變化的信號。用示例的形式,但不是限制,傳播介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接的有線媒體、和諸如聲波、RF、紅外線和其它無線媒體的無線媒體。任何上述媒體的結(jié)合也應(yīng)當包括在計算機可讀媒體的范圍之內(nèi)。
再次參見圖24,這里示出了用于執(zhí)行本發(fā)明各個方面的示例性的環(huán)境2400,包括計算機2402,所述計算機2402包括處理單元2404、系統(tǒng)存儲器2406和系統(tǒng)總線2408。系統(tǒng)總線2408耦合系統(tǒng)部件包括將系統(tǒng)存儲器2406耦合至處理單元2404,但不限于此。處理單元2404可以是市場上可買到的各種處理器中的任何一個。雙重微處理器和其它多處理器結(jié)構(gòu)也可以使用為所述處理單元2404。
系統(tǒng)總線2408可以是任何總線結(jié)構(gòu)的型號,可進一步連接至存儲器總線(具有或不具有存儲控制器)、外設(shè)總線、和使用任何市場上可買到的總線結(jié)構(gòu)的本地總線。系統(tǒng)存儲器2406包括只讀存儲器(ROM)2410和隨機存取存儲器(RAM)2412。基本輸入/輸出系統(tǒng)(BIOS)存儲在諸如是ROM、EPROM、EEPROM的非易失性存儲器2410里,其中BIOS包括基本例程來幫助在計算機2402的元件之間傳遞信息,比如在啟動的過程里。RAM2412也可以包括諸如是靜態(tài)RAM的高速RAM,用來高速存取數(shù)據(jù)。
計算機2402還包括內(nèi)部硬盤驅(qū)動器(HDD)2414(例如是EIDE、SATA),該內(nèi)部硬盤驅(qū)動器2414也可配置為在合適的底盤里的外部使用(未圖示),磁性軟盤驅(qū)動器(FDD)2416(例如從/向可移動磁盤2418中讀出或?qū)懭?,和光盤驅(qū)動器2420(例如是讀取CD-ROM盤2422、或從/向其它諸如是DVD的高容量光媒體中讀出或?qū)懭?。硬盤驅(qū)動器2414、磁盤驅(qū)動器2416和光盤驅(qū)動器2420可分別通過硬盤驅(qū)動器接口2412、磁盤驅(qū)動器接口2426和光盤驅(qū)動器接口2428來連接至系統(tǒng)總線2408。用于外部設(shè)備執(zhí)行的接口2424至少包括一個或既包括通用串行總線又包括IEEE1394接口技術(shù)。
所述驅(qū)動器和與它們相關(guān)的計算機可讀媒體提供了數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可執(zhí)行指令等等的非易失性存儲。對于計算機2402,驅(qū)動器和媒體以合適的數(shù)字格式來適合任何數(shù)據(jù)的存儲。盡管上述計算機可讀媒體的描述是指HDD、可移動磁帶盒和諸如是CD或DVD的可移動光學(xué)媒體,本領(lǐng)域的技術(shù)人員可明白的是可被計算機讀取的其它類型的媒體也可用在所述示例性的執(zhí)行環(huán)境里,所述其它類型的媒體諸如是壓縮驅(qū)動器、磁帶盒、閃速存儲卡、字體盒等等,并且所述媒體還包含用于執(zhí)行本發(fā)明的所述方法的計算機可讀指令。
大量的程序模塊可存儲在驅(qū)動器盒RAM2412里,包括操作系統(tǒng)2430、一個或多個應(yīng)用程序2432、其它程序模塊2434以及程序數(shù)據(jù)2436。所有的或部分的操作系統(tǒng)、應(yīng)用程序、模塊和/或數(shù)據(jù)也可以在RAM2412里高速緩存。
可明白的是本發(fā)明也可以與各種市場上可買到的操作系統(tǒng)或操作系統(tǒng)的結(jié)合來一起執(zhí)行。
用戶可通過一個或多個有線/無線輸入設(shè)備來將指令和信息輸入計算機2402,所述輸入設(shè)備例如是鍵盤2438和諸如是鼠標2440的定位設(shè)備。其它輸入設(shè)備(未圖示)可包括麥克風、IR遠程控制、操縱桿、游戲墊板、觸筆、觸摸屏或類似的。這些和其它輸入設(shè)備經(jīng)常通過耦合到系統(tǒng)總線2408的輸入設(shè)備接口2442來連接到處理單元2404,但也可以通過其它接口,諸如并行端口、IEEE1394串行端口、游戲端口、USB端口、IR接口等來連接。
監(jiān)視器2444或其它類型的顯示設(shè)備經(jīng)由諸如是視頻適配器2446的接口來連接至系統(tǒng)總線2408。除監(jiān)視器2444之外,計算機典型地包括其它外圍輸出設(shè)備(未圖示),諸如是揚聲器、打印機等。
計算機2402可使用通過與一個或多個諸如是遠程計算機2448的遠程計算機的有線和/或無線通信的邏輯連接來運行在網(wǎng)絡(luò)環(huán)境里。遠程計算機2448可以是工作站、服務(wù)器計算機、路由器、個人計算機、便攜式計算機、基于微處理器的娛樂器械、窺視設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點,并包括與計算機2402相關(guān)的描述的元件的一些或全部,盡管為了簡短的目的,只示意說明了存儲設(shè)備2450。所描述的邏輯連接包括到局域網(wǎng)(LAN)2452和/或如廣域網(wǎng)(WAN)2454的大網(wǎng)絡(luò)的有線/無線的連接。這種LAN和WAN網(wǎng)絡(luò)環(huán)境在辦公室、公司里是很常見的,并促進企業(yè)擴大計算機網(wǎng)絡(luò),諸如企業(yè)內(nèi)部網(wǎng)絡(luò)連接,所有的這些網(wǎng)絡(luò)都可以連接到全球通信網(wǎng)絡(luò),如因特網(wǎng)。
當在LAN網(wǎng)絡(luò)環(huán)境里使用時,計算機2402通過有線和/無線的通信網(wǎng)絡(luò)接口或適配器2456連接到本地網(wǎng)絡(luò)2452。適配器2456可使到LAN2452的有線或無線通信變得容易,該LAN也包括部署在這里用來與無線適配器2456進行通信的無線接入點。當使用在WAN網(wǎng)絡(luò)環(huán)境里的時候,計算機2402包括調(diào)制解調(diào)器2458,或在LAN上連接至通信服務(wù)器,或具有其它在WAN2454上建立通信的裝置,如通過因特網(wǎng)。調(diào)制解調(diào)器2458可以是內(nèi)部或外部的,并可以是有線或無線設(shè)備,通過串行端接口2442來連接至系統(tǒng)總線2408。在網(wǎng)絡(luò)環(huán)境里,部署在這里與計算機2402相關(guān)或部分相關(guān)的程序模塊可以存儲在遠程存儲/儲存設(shè)備2450里??擅靼椎氖?,示出的網(wǎng)絡(luò)連接是示例性的,并且也可以使用其它可以在計算機之間建立通信鏈接的裝置。
計算機2402用來與任何的無線設(shè)備或配置的實體以無線通信的方式進行通信,所述實體例如是打印機、掃描儀、臺式機和/或便攜式計算機、便攜式數(shù)據(jù)助理、通信衛(wèi)星、任何裝置的碎片或與無線可檢測標記相關(guān)的位置(例如共用電話亭、報攤、休息室)、和電話。這至少包括Wi-Fi和藍牙TM無線技術(shù)。這樣,通信可以是預(yù)先定義的作為與傳統(tǒng)網(wǎng)絡(luò)或特別是至少兩個設(shè)備之間的簡單網(wǎng)絡(luò)進行通信的結(jié)構(gòu)。
Wi-Fi或者無線保真度,允許從家庭的長沙發(fā)、賓館房間的床上或公司的會議室里無線連接至因特網(wǎng)。Wi-Fi是類似于無線電話的無線技術(shù),只要在基站的范圍內(nèi),就可以使例如是計算機的設(shè)備在室內(nèi)外發(fā)送和接收數(shù)據(jù)。Wi-Fi網(wǎng)絡(luò)使用一種叫做IEEE802.11(a,b,g等)無線電技術(shù)來提供安全的、可靠的、快速的無線通信。Wi-Fi網(wǎng)絡(luò)可用來將計算機互相連接在一起,或?qū)⒂嬎銠C連接至因特網(wǎng),和連接至無線網(wǎng)絡(luò)(該網(wǎng)絡(luò)使用IEEE802.3或Ethernet)。Wi-Fi網(wǎng)絡(luò)在未許可的2.4和5GHz無線電波段里運行,具有11Mbps(802.11b)或54Mbps(802.11a)數(shù)據(jù)速率或具有包含兩個波段(雙波段)的產(chǎn)物,因此所述網(wǎng)絡(luò)可以提供類似于在許多辦公室里使用的基本10BaseT無線以太網(wǎng)的真實世界的執(zhí)行。
現(xiàn)在參見圖25,這里示出了根據(jù)本發(fā)明示例性的計算環(huán)境2500的概要模塊圖。系統(tǒng)2500包括一個或多個客戶2502。所述客戶2502可是硬件和/或軟件(例如線程、過程、計算設(shè)備)。例如,客戶2502通過使用本發(fā)明可放置Cookie和/或相關(guān)的上下文信息。系統(tǒng)2500還包括一個或多個服務(wù)器2504。所述服務(wù)器2504也可以是硬件和/或軟件(例如線程、過程、計算設(shè)備)。例如,所述服務(wù)器2504可放置線程,通過使用本發(fā)明來執(zhí)行傳送。在客戶2502和服務(wù)器2504之間的一個可能的通信是以適合于在兩個或更多計算機處理器之間傳送的數(shù)據(jù)包的形式來傳送。例如,所述數(shù)據(jù)包可以包括Cookie和/或相關(guān)的上下文信息。系統(tǒng)2500包括通信框架2506(例如是全球通信網(wǎng)絡(luò),諸如因特網(wǎng)),該通信框架可用來使客戶2502和服務(wù)器2504之間的通信方便。
通過有線(包括光纖)和/或無線傳輸技術(shù)使通信變得更方便??蛻?502可連接至一個或多個客戶數(shù)據(jù)存儲器2508,該存儲器可用來為客戶2502存儲本地信息(例如Cookies和/或相關(guān)的上下文信息)。相似地,服務(wù)器可用來連接至一個或多個數(shù)據(jù)存儲器2510,該數(shù)據(jù)存儲器可用來為服務(wù)器2504存儲本地信息。
以上所描述的包括了本發(fā)明的實施例,當然,不可能將每個可能想到的部件的連接或用于描述本發(fā)明的方法都描述出來,但本領(lǐng)域的普通技術(shù)人員可以認識到本發(fā)明的進一步連接和變化都是可能的。因此,本發(fā)明意欲包含所有的這些變化、改變和落入附加權(quán)利要求的精神和范圍的各種變化。此外,為了范圍,所述術(shù)語“包括”不是用在細節(jié)描述中,就是用在權(quán)利要求中,這個術(shù)語意欲指與術(shù)語“由……組成”類似的一種包括的方式,當在權(quán)利要求中用作過渡詞時,“由……組成”也被翻譯成“包括”。
權(quán)利要求
1.一種便于分解的視形的產(chǎn)生的系統(tǒng),包括創(chuàng)作部件,用來接收圖像或圖像集,并同時便于將圖像或圖像集轉(zhuǎn)換成用于用戶與之交互的分解的視形的過程。
2.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件允許在分解的視形里分層,以指示圖像或圖像集里的對象的元件是如何分解、組合及互相咬合的。
3.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件是半自動的,因此可適應(yīng)一些用戶的干涉。
4.如權(quán)利要求1所述的系統(tǒng),輸入到所述創(chuàng)作部件的圖像或圖像集是二維圖像。
5.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件便于將圖像或圖像集的對象處理成元件、堆疊和碎片中的至少一個。
6.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件便于向分解的視形里至少一個元件分配深度值。
7.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件通過允許用來給元件的每個碎片分配深度值來便于元件的分層。
8.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件便于將多個元件與堆疊聯(lián)合,所述堆疊定義了如何允許元件相對彼此移動。
9.如權(quán)利要求8所述的系統(tǒng),所述堆疊共享相同分解軸。
10.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件便于堆疊樹的產(chǎn)生。
11.如權(quán)利要求1所述的系統(tǒng),所述創(chuàng)作部件便于將多個元件和堆疊聯(lián)合,所述堆疊為每個組成元件存儲了初始位置參數(shù)、當前偏移參數(shù)、及最大偏移參數(shù)。
12.如權(quán)利要求11所述的系統(tǒng),所述創(chuàng)作部件便于將多個元件與堆疊聯(lián)合,其中所述多個元件中的每一個元件依賴于在前元件的位置。
13.如權(quán)利要求1所述的系統(tǒng),通過使用自由形式畫線來連接相關(guān)的元件,所述創(chuàng)作部件便于堆疊的創(chuàng)建。
14.如權(quán)利要求13所述的系統(tǒng),所述堆疊保持與自由形式畫線相關(guān)的相關(guān)元件的順序。
15.如權(quán)利要求1所述的系統(tǒng),還包括分割工具,允許用戶定義在圖像或圖像集里的對象的單個元件。
16.如權(quán)利要求1所述的系統(tǒng),還包括注解工具,允許具有標記的元件的注解和任何兩個元件之間的導(dǎo)航的說明。
17.如權(quán)利要求1所述的系統(tǒng),還包括觀察部件,用來響應(yīng)直接用戶動作,動態(tài)地過濾圖形信息。
18.如權(quán)利要求1所述的系統(tǒng),所述觀察部件通過允許用戶用輸入設(shè)備使分解的視形里的對象或元件被抓住、被調(diào)整大小或拉來便于用戶的直接交互,所述輸入設(shè)備包括鼠標、基于鍵的設(shè)備和聲音控制;和通過允許用戶使用搜索接口和動畫的分解/組合中至少一個操縱對象來便于用戶的非直接交互。
19.一種便于具有分解的視形的用戶交互的系統(tǒng),包括觀察部件,用來響應(yīng)用戶交互,動態(tài)地過濾圖形信息。
20.如權(quán)利要求19所述的系統(tǒng),所述觀察部件通過允許用戶直接地分解和組合所述分解的視形來適應(yīng)直接用戶交互,和通過允許用戶搜索所述分解的視形里的單個元件來適應(yīng)非直接用戶交互。
21.如權(quán)利要求19所述的系統(tǒng),所述分解的視形是在正交視圖和透視圖中至少一個里的輸入二維圖像或圖像集的基于分層的2.5維圖像表示。
22.如權(quán)利要求19所述的系統(tǒng),所述觀察部件響應(yīng)輸入設(shè)備信號,便于分解的視形的分解和組合中的至少一個的動畫的表示。
23.如權(quán)利要求19所述的系統(tǒng),所述觀察部件便于標記和導(dǎo)航的表示,所述標記和導(dǎo)航的固定點由其它元件咬合。
24.一種便于用圖像或圖像集制造的交互式分解的視形的創(chuàng)建的系統(tǒng),包括創(chuàng)作部件,用來接收圖像或圖像集,并便于將所述圖像或圖像集處理成分解的視形;和觀察部件,便于與直接和非直接的用戶交互的至少一個相關(guān)的所述分解的視形的圖形信息的動態(tài)過濾。
25.如權(quán)利要求24所述的系統(tǒng),所述分解的視形是所述圖像或圖像集的基于層的2.5維圖像表示。
26.一種計算機可讀媒體,具有存儲在其上的用來實施權(quán)利要求24的計算機可執(zhí)行指令。
27.一種使用權(quán)利要求24所述系統(tǒng)的計算機。
28.一種便于用圖像或圖像集制造的交互式分解的視形的創(chuàng)建的系統(tǒng),包括創(chuàng)作部件,用來接收二維圖像或圖像集,并便于將所述二維圖像或圖像集處理成分解的視形,所述創(chuàng)作部件還包括,分割工具,允許用戶手動地將圖像或圖像集里的對象分成組成元件;堆疊部件,允許用戶使用自由形式畫線沿分解軸聯(lián)合組成元件;分層部件,允許對組成部件的每一個深度參數(shù)的分配;和注解部件,允許用于任何元件標記的注解和在任何兩個元件之間的導(dǎo)航的說明。觀察部件,便于與直接和非直接用戶交互相關(guān)的所述分解的視像的圖形信息的動態(tài)過濾。
29.如權(quán)利要求28所述的系統(tǒng),還包括分離工具,便于分離互鎖的元件。
30.如權(quán)利要求28所述的系統(tǒng),還包括深度工具,至少一個自動的指定了用于分配給組成元件中一個的深度參數(shù),并使用戶向元件分配深度參數(shù)的速度加快。
31.如權(quán)利要求28所述的系統(tǒng),所述創(chuàng)作部件自動的在單一通道里從底部元件向外計算并分配深度值。
32.如權(quán)利要求28所述的系統(tǒng),所述創(chuàng)作部件使用約束傳播算法來自動地選擇元件的深度參數(shù)確保所述元件相對于其它元件正確分層。
33.如權(quán)利要求28所述的系統(tǒng),還包括注解工具,允許具有標記的元件的注解,和任意兩個元件之間的導(dǎo)航的說明。
34.如權(quán)利要求28所述的系統(tǒng),還包括分類器,通過基于與所述創(chuàng)作部件和所述觀察部件中的至少一個相關(guān)的一個或多個數(shù)據(jù)形成參照來自動操作器件。
35.一種具有用于執(zhí)行從圖像或圖像集產(chǎn)生交互式分解的視形的方法的計算機可執(zhí)行指令的計算機可讀媒體,所述方法包括接收包含對象的圖像或圖像集;將所述對象分割成元件;將所述元件編組成堆疊;將至少一個元件粉碎為碎片;將每個元件分層;及將所述圖像表示為所述分解的視形。
36.如權(quán)利要求35所述的方法,所述編組的步驟由自由形式畫線來執(zhí)行。
37.如權(quán)利要求35所述的方法,還包括以下至少一個步驟利用輸入設(shè)備的信號,繪制所述分解的視形的分解和組合中的至少一個;及使用約束的直接操作,直接操作所述分解的視形的部分。
38.如權(quán)利要求35所述的方法,還包括以下至少一個步驟通過向搜索引擎輸入元件名稱來搜索隱藏的元件;通過選擇所述堆疊的一個元件來直接的操縱元件的所述堆疊的部分;及用至少一個標記和任合兩個元件之間的導(dǎo)航來注解元件。
39.如權(quán)利要求35所述的方法,還包括以下至少一個步驟響應(yīng)開始搜索所述隱藏的元件,自動的暴露出隱藏的元件和所述觀察的部件;在分離操作的過程中,手動地解決違規(guī);及提供手動交互和自動過程。
40.如權(quán)利要求35所述的方法,還包括以下至少一個步驟在拓撲次序里來回移動堆疊的層次;基于在前元件和當前偏移,連續(xù)的計算和更新每個元件的位置。
41.如權(quán)利要求35所述的方法,還包括再現(xiàn)固定點被其它元件咬合的標記和導(dǎo)航。
42.一種便于用圖像制造的分解的視形的創(chuàng)建的系統(tǒng),包括用于接收包含對象的所述圖像的裝置;用于將所述對象分割成元件的裝置;用于將所述元件編組成堆疊的裝置;用于將至少一個所述元件粉碎為碎片的裝置;用于將每個元件分層的裝置;用于標記每個元件的裝置;用于在任何兩個元件之間添加導(dǎo)航的裝置;及用于將圖像表示為基于分層的2.5維圖像圖形的分解的視圖的裝置。
全文摘要
本發(fā)明涉及一種用于從圖像或圖像及創(chuàng)作和表示交互式分解的視形的框架。所述框架包括用來接收圖像并便于將所述圖像處理成分解的視形的過程的創(chuàng)作部件;和便于與用戶交互相關(guān)的所述分解的視形的圖形信息的動態(tài)過濾的觀察部件。所述產(chǎn)生的交互式圖形是基于分層的2.5維圖像圖形,便于用戶交互的分解或組合所述呈現(xiàn)的視形的部分。
文檔編號G06F17/00GK1755733SQ20051008379
公開日2006年4月5日 申請日期2005年5月10日 優(yōu)先權(quán)日2004年5月10日
發(fā)明者M·阿格瓦拉, W·W·-M·李 申請人:微軟公司