專利名稱:生成計算機可讀模型的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及借助于預(yù)定的幾何單元對于虛擬現(xiàn)實進行計算機輔助建模的領(lǐng)域。
背景技術(shù):
虛擬現(xiàn)實的計算機輔助建模是在計算機系統(tǒng)中創(chuàng)建幾何對象的模型、解譯模型、操控模型和要么處理幾何對象的模型的任務(wù)。
從第一個觀點看來,虛擬現(xiàn)實的建模是感興趣的課題,因為它使得有可能在想法在現(xiàn)實世界被實際地實施之前可以把該想法視覺化。如果可看見的現(xiàn)實模型足夠容易修正,在開發(fā)和改進幾何對象的過程中,比起其中相同的過程在現(xiàn)實世界中進行的情形,可以節(jié)省大量時間。在現(xiàn)實世界中畫一個對象的簡單的任務(wù)很容易花費幾小時,而計算機可以在幾毫秒或幾秒內(nèi)加上新的顏色,使得模型成為可看見的。
從第二觀點看來,虛擬現(xiàn)實的建模是感興趣的,因為它使得有可能創(chuàng)建在現(xiàn)實世界中存在的對象的模型以及在某種意義上經(jīng)由計算機看見和操控該模型。因此,在現(xiàn)實世界中的對象的模型可被存儲,用于不同的用途,例如用于先進的文本提供。
雖然存在有大量可能的應(yīng)用用于計算機輔助虛擬現(xiàn)實建模,但專門的應(yīng)用是使用用于娛樂或教育的虛擬現(xiàn)實建模。
實際構(gòu)建玩具裝置的各種類型的建模概念已知是這樣的。具體地,使用模塊的概念或半模塊概念從過去到現(xiàn)在是非常流行的。典型地,這些概念提供一組預(yù)先制造的單元,它們可以按照預(yù)先制造的單元的模塊以某種預(yù)定的方式互相連接。預(yù)先制造的單元類似適合于具體的建模任務(wù)的熟知的對象。因此,例如在構(gòu)建房子的模型時,這些單元類似墻壁的磚、房頂?shù)耐?、門和窗。這樣地選擇單元的目的在于,在構(gòu)建房子的模型時牽涉到的工作,比起其中房子的所有的細節(jié)在每次制作新的模型時要被規(guī)定的情形來說,可大大地減小。然而,構(gòu)建房子或另外的對象的完全的自由度被構(gòu)建模型的簡單性替換。
具有預(yù)定的單元的這種方法在計算機輔助虛擬現(xiàn)實建模的技術(shù)方面是熟知的。另外,具有可以互相連接的模塊單元的概念是公知的。但當(dāng)涉及到計算機中的這樣的模型表示時,具有預(yù)定的單元和模塊系統(tǒng)的概念的權(quán)宜方法在現(xiàn)有技術(shù)中沒有完全完成。
只要計算機被使用于計算機輔助設(shè)計和建模,需要大的計算量的任務(wù)就是模型的可視性或操控,包括計算模型如何出現(xiàn)。這樣做的一個原因是虛擬現(xiàn)實建模的復(fù)雜性和改善被擴展成遵循近年來可得到的計算機技術(shù)和計算能力。
當(dāng)涉及到傳送和交換表示模型的數(shù)據(jù)時,虛擬現(xiàn)實建模的復(fù)雜性和改善的缺點呈現(xiàn)得非常清楚。存儲單元或計算機通信網(wǎng)絡(luò)的形式的某種類型的外部單元被連接到計算機,從而擴展用于存儲、裝載和/或發(fā)送、接收模型的信號路徑。典型地,這樣的信號路徑,比起在單個計算機內(nèi)的信號路徑,具有較低的帶寬。因此,需要表示模型的有效的方案。
具體地,在生成可以經(jīng)由諸如連接器和相應(yīng)的接納器的連接單元被互連的、預(yù)定的單元或構(gòu)建單元的模型的情形下,引起確定兩個虛擬構(gòu)建單元在互相相對地放置在某個位置時是否可連接的通用的問題。可連接信息是重要的信息,以便生成實際對象的現(xiàn)實模型,例如以便保證虛擬模型不包括沒有連接到建模的對象的支撐部件的浮在表面上的任何單元。
在大多數(shù)現(xiàn)實世界的結(jié)構(gòu)組中,存在可以以許多不同的方式互連的各種各樣的不同的構(gòu)建單元。
因此,本發(fā)明的一個目的是提供生成其中各種各樣的不同的構(gòu)建單元可被互連的幾何對象的計算機可讀的模型的方法。
本發(fā)明的另一個目的是提供生成其中構(gòu)建單元可以以各種各樣可能的方式被互連的幾何對象的計算機可讀的模型的方法。
發(fā)明內(nèi)容
以上和其它問題是通過生成從多個可互連的構(gòu)建單元構(gòu)建的幾何對象的計算機可讀的模型的方法解決的,其中每個構(gòu)建單元具有多個連接單元,用于將該構(gòu)建單元與另一個構(gòu)建單元相連接,方法包括把多個構(gòu)建單元的第一和第二構(gòu)建單元編碼為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu),每個表示相應(yīng)的構(gòu)建單元的連接單元,以及每個連接單元具有與它有關(guān)的多個預(yù)定的連接類型之一;確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元以及第二構(gòu)建單元的第二連接單元;以及檢索第一和第二連接單元的相應(yīng)的連接類型的連接信息,表示第一和第二連接單元是否提供第一和第二連接單元之間的連接。
本發(fā)明的一個優(yōu)點在于,它提供模型結(jié)構(gòu)和模型結(jié)構(gòu)的表示,該模型結(jié)構(gòu)的表示適合于表示由模塊玩具構(gòu)建單元組成的對象。
本發(fā)明的另一個優(yōu)點在于,它提供對于各種各樣構(gòu)建單元的連接進行建模的方法。
本發(fā)明的再一個優(yōu)點在于,它提供對于各種各樣不同的連接單元,諸如不同的類型的球、孔、管道、鉸鏈、棱、軸等的連接進行建模的方法。通過提供多個具有連接類型的連接單元,提供了與實際連接器的真實的幾何形狀無關(guān)的構(gòu)建單元的連接質(zhì)的表示。
具體地,優(yōu)點在于,提供了與實際連接單元的外觀和它們的結(jié)構(gòu)無關(guān)的、對于各種各樣不同的連接單元的連接進行建模的方法。
因此,包括不同的類型的連接單元的不同的預(yù)定的構(gòu)建單元的大型的組可被建模。
術(shù)語構(gòu)建單元包括任何適當(dāng)類型的具有用于把它與一個或多個其它構(gòu)建單元相連接并可被使用來創(chuàng)建實際對象和可以在計算機上被數(shù)字地表示的連接單元的構(gòu)建單元,。構(gòu)建單元的例子包括構(gòu)建玩具裝置的單元,例如,諸如磚等等的構(gòu)建塊。術(shù)語構(gòu)建單元還包括互連的較小的構(gòu)建單元-例如兩個或多個連接的磚-的組合體。
在一個實施例中,連接類型被編組為多個連接組,例如連接器、接納器、和混合單元。連接器是可被另一個構(gòu)建單元的接納器接納的連接單元,由此提供在構(gòu)建單元之間的連接。例如,連接器可以在另一個單元的部件之間適合于孔等等。接納器是可以接納另一個構(gòu)建單元的連接器的連接單元?;旌蠁卧强梢云鸬浇蛹{器和連接器的作用的部件,這典型地取決于另一個構(gòu)建單元的合作的連接單元的類型。
本發(fā)明的再一個優(yōu)點在于,它提供對于沿可以互相相對旋轉(zhuǎn)的不同的表面或面的連接進行建模的方法。
本發(fā)明的再一個優(yōu)點在于,它提供允許對于包括可移動的部件和/或可旋轉(zhuǎn)的部件的復(fù)雜對象進行建模的幾何對象的模型的緊湊表示。
本發(fā)明的再一個優(yōu)點在于,它提供幾何對象的模型的緊湊表示。
本發(fā)明的再一個優(yōu)點在于,它提供有可能非常快速地生成和解譯的模型結(jié)構(gòu)和模型結(jié)構(gòu)的表示。
本發(fā)明的再一個優(yōu)點在于,它提供在當(dāng)模型被觀看、被生成或被操控時的相對較低的帶寬要求和低的處理時間的意義下,對經(jīng)由計算機網(wǎng)絡(luò)分發(fā)有利的模型結(jié)構(gòu)的表示。
在本發(fā)明的優(yōu)選實施例中,方法還包括提供包括成對的連接類型的可連接信息的連接表;以及檢索可連接信息的步驟,包括從連接表檢索連接信息。
術(shù)語連接表打算包括任何適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),用于存儲成對的連接類型的連接信息。例如,這樣的數(shù)據(jù)結(jié)構(gòu)可以是以成對的連接類型為索引的查找表。
通過提供連接表,有效的和可擴展的數(shù)據(jù)結(jié)構(gòu)被提供用于存儲與連接類型對有關(guān)的連接信息。而且,使得快速連接檢測成為可能的。
在本發(fā)明的另一個優(yōu)選實施例中,每個各個數(shù)據(jù)結(jié)構(gòu)還表示相對于相應(yīng)的構(gòu)建單元的多個網(wǎng)格,每個網(wǎng)格具有多個網(wǎng)格點;以及構(gòu)建單元的每個連接單元與一個網(wǎng)格點相關(guān),并具有相應(yīng)的連接類型。
因此,通過為網(wǎng)格結(jié)構(gòu),諸如方形網(wǎng)格,三角形網(wǎng)格等等,提供與相關(guān)的連接類型有關(guān)的網(wǎng)格點,各種連接單元的不同的性質(zhì),諸如尺寸、形狀、連接質(zhì)等等可被歸結(jié)為與每個網(wǎng)格點有關(guān)的一個或多個屬性。因此,實現(xiàn)構(gòu)建單元的連接質(zhì)的有效的表示。
另一個優(yōu)點是通過把連接單元與網(wǎng)格點相關(guān),有可能特別簡單地檢測兩個連接單元是否以預(yù)定互相靠近程度定位。例如,在一個其中構(gòu)建單元被放置在公共的離散體積參考網(wǎng)格中以及所有的坐標(biāo)是任意長度單元的倍數(shù)的實施例中,對于在預(yù)定的鄰近區(qū)域內(nèi)、要考慮兩個連接單元處于預(yù)定靠近程度可能需要精確的坐標(biāo)匹配。在連續(xù)的或準(zhǔn)連續(xù)的參考坐標(biāo)系統(tǒng)中,可能要求網(wǎng)格點與預(yù)定的邊界一致,即,它們被以預(yù)定的互相靠近程度放置??拷潭鹊某叽缈赡苋Q于要被建模的實際的連接單元的類型,如,為了連接它們實際上如何合作,以及取決于應(yīng)當(dāng)被加強的放置構(gòu)建單元的精度。
優(yōu)選地,構(gòu)建單元可以沿著它被連接到另一個構(gòu)建單元的每個面被劃分成網(wǎng)格分段,例如,方塊,其中每個網(wǎng)格分段具有在中心的網(wǎng)格點。
優(yōu)選地,每個連接單元具有相關(guān)的方向,表示連接單元可以沿該方向與相應(yīng)的連接單元嚙合。
進一步優(yōu)選地,位于公共面上和具有共同的方向的所有的連接單元相應(yīng)于具有在相鄰的網(wǎng)格點之間的預(yù)定的距離的正交網(wǎng)格的分段。優(yōu)選地,構(gòu)建單元組的所有的構(gòu)建單元中的連接單元按照預(yù)定的法則被放置在構(gòu)建單元上,允許把每個連接單元與相應(yīng)的網(wǎng)格點相關(guān)。
然而,應(yīng)當(dāng)指出,在不同的非平行的平面上的連接單元在各個網(wǎng)格點之間不需要具有相同的距離。例如,在水平面上連接單元之間的距離可以是與在垂直面上連接單元之間的距離不同的。
而且,通過把連接單元與預(yù)定的網(wǎng)格點相關(guān),可以以有效的方式確定第一構(gòu)建單元的連接單元是否處在第二構(gòu)建單元的連接單元的預(yù)定的靠近程度之內(nèi),因為確定可被限于識別相鄰的網(wǎng)格點。
在另一個優(yōu)選實施例中,方法還包括-為每個預(yù)定組的成對的連接類型,提供包括最終得到的連接類型的組合表;
-確定互相以預(yù)定的幾何關(guān)系放置的第一和第二連接單元;-從組合表檢索第一和第二連接單元的最終得到的連接類型,以及-把檢索的最終得到的連接類型指定給至少最終得到的連接單元。
因此,優(yōu)點是連接單元的連接類型是動態(tài)的,即,它們可以根據(jù)構(gòu)建單元被放置到的幾何環(huán)境而改變,由此提供實際構(gòu)建單元的連接質(zhì)的更現(xiàn)實的建模。具體地,第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元,當(dāng)以預(yù)定的幾何關(guān)系互相放置時,可以協(xié)同地提供與各個連接單元不同的連接性質(zhì)。
第一和第二連接單元的協(xié)同的效果常常取決于它們的相互的幾何關(guān)系,即,連接單元互相相對地放置的方式,例如,它們互相放置得如何接近,它們互相放置的相對方向等等。在一個實施例中,這是通過確定第一和第二連接單元是否被以預(yù)定的互相靠近程度放置而被建模的;如果它們被以這樣的互相靠近程度放置,則把確定的最終得到的連接類型指定給第一和第二連接單元。
在實際結(jié)構(gòu)中,這是通過把最終得到的連接類型至少指定給最終得到的連接單元而表示的。在一個實施例中,最終得到的連接單元是第一和第二連接單元之一。在另一個優(yōu)選實施例中,最終得到的連接類型被指定給第一和第二連接單元。
進一步優(yōu)選地,如果相應(yīng)的構(gòu)建單元被重新放置以使得連接單元不再以需要的幾何關(guān)系被放置的話,第一和第二連接單元重新指定它們各自的原先的連接類型。
在替換實施例中,最終得到的連接單元可以是新的連接單元,例如,被規(guī)定為使得它具有相對于第一和第二連接單元位置的位置。
可以看到,在某些實施例中,兩個以上的連接單元可被組合而產(chǎn)生最終得到的連接類型。
術(shù)語組合表打算包括任何適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),用于存儲成對的連接類型的最終得到的連接類型。例如,這樣的數(shù)據(jù)結(jié)構(gòu)可以是以成對的連接類型為索引的查找表,其中查找表的每個項目包括由一對連接單元的組合造成的最終產(chǎn)生的連接類型,每個連接單元具有相應(yīng)的連接類型對的各連接類型。
通過提供組合表,有效的和可擴展的數(shù)據(jù)結(jié)構(gòu)被提供用于存儲有關(guān)連接單元的連接類型由于它們與其它連接類型的組合而可如何改變的信息。
具體地,在虛擬構(gòu)建塊的情形下,經(jīng)常發(fā)生的情形是其中兩個構(gòu)建塊被互相鄰近地放置,即,以邊緣對邊緣的擴展方式放置,以使得在相鄰的構(gòu)建塊的邊緣上的連接單元改變性質(zhì)。
在另一個優(yōu)選實施例中,這種情形在與構(gòu)建單元有關(guān)的每個網(wǎng)格具有至少一個網(wǎng)格邊緣時被有效地建模,以及方法還包括-提供組合表,其包括對于每對連接類型的最終得到的連接類型;-檢測第一連接單元的第一網(wǎng)格是否被放置在第二連接單元的第二網(wǎng)格的邊緣對邊緣擴展處,第一網(wǎng)格的第一邊緣對準(zhǔn)第二網(wǎng)格的第二邊緣;-對于第一網(wǎng)格的第一連接單元,識別第二網(wǎng)格的相應(yīng)的第二連接單元;-從組合表檢索第一和第二連接單元的組合的最終得到的連接類型;以及-把檢索的最終得到的連接類型指定給第一和第二連接單元。
當(dāng)構(gòu)建單元以它們的各個邊緣相互靠近甚至互相接觸地來一個接一個放置時,在相應(yīng)的邊緣上的連接單元可以根據(jù)在或接近于其它的構(gòu)建單元的相應(yīng)的邊緣上的連接單元的類型來改變它們的性質(zhì)。
通過提供包括對于每對連接類型的最終得到的連接類型的組合表;和通過把最終得到的連接類型指定給在構(gòu)建單元的邊緣上的連接單元,如果檢測到邊緣到邊緣擴展,則甚至共同合作的構(gòu)建單元的復(fù)雜的連接質(zhì)也可被建模。
術(shù)語邊緣到邊緣擴展包括兩個網(wǎng)格互相之間放置成它們的相應(yīng)的網(wǎng)格組合成組合的網(wǎng)格。因此,術(shù)語邊緣到邊緣擴展包括兩個平行的網(wǎng)格,這兩個網(wǎng)格具有各自的平行網(wǎng)格邊緣和沿平行的網(wǎng)格邊緣的預(yù)定的重疊,以使得接近于邊緣的網(wǎng)格點一致。
在本發(fā)明的另一個優(yōu)選實施例中,每個各自的數(shù)據(jù)結(jié)構(gòu)還表示相應(yīng)的構(gòu)建單元的邊界的體積;以及每個網(wǎng)格相應(yīng)于邊界的體積的表面。
因此,通過提供相應(yīng)的構(gòu)建單元的邊界的體積,其中網(wǎng)格相應(yīng)于邊界體積的表面,即使構(gòu)建單元具有復(fù)雜的形狀,每個構(gòu)建單元可以由小數(shù)目的網(wǎng)格表示。因此,可以實現(xiàn)兩個構(gòu)建單元的共同合作的連接單元的有效的檢測,因為連接單元的形狀的復(fù)雜性被轉(zhuǎn)換成連接類型,它又作為屬性同與邊界體積的表面有關(guān)的網(wǎng)格點相關(guān)。
而且,通過采用已知的沖突檢測算法,邊界體積提供對于檢測到相鄰的構(gòu)建單元的有效表示。
邊界體積可以是具有互相正交的面的邊界方盒,或具有不同形狀的邊界體積。
在另一個優(yōu)選實施例中,方法還包括編碼第一和第二構(gòu)建單元相對于共同的體積參考網(wǎng)格的各個位置,相應(yīng)的第一和第二構(gòu)建單元的第一和第二網(wǎng)格相應(yīng)于體積參考網(wǎng)格的各自的第一和第二面;第一和第二網(wǎng)格的網(wǎng)格點相應(yīng)于體積參考網(wǎng)格的各自的參考網(wǎng)格點;以及檢測第一和第二網(wǎng)格是否相應(yīng)于體積參考網(wǎng)格的公共面,以及第一網(wǎng)格的至少第一網(wǎng)格點是否位于與第二網(wǎng)格的第二網(wǎng)格點相同的參考網(wǎng)格點。
因此,通過提供體積參考網(wǎng)格,例如立方體體積網(wǎng)格,以及規(guī)定表面網(wǎng)格為參考體積網(wǎng)格的面,提供特別簡單的數(shù)據(jù)結(jié)構(gòu),允許特別有效地檢測相鄰的網(wǎng)格點。
優(yōu)選地,邊界體積被定義為相對于體積參考網(wǎng)格的面。在一個實施例中,它們與體積參考網(wǎng)格的網(wǎng)格面相一致,或替換地,可被規(guī)定為在體積參考網(wǎng)格的網(wǎng)格面之間的面。
在本發(fā)明的另一個優(yōu)選實施例中,方法還包括
-識別第一和第二網(wǎng)格的所有的一致的網(wǎng)格點對;-對于每個識別的網(wǎng)格點對,從連接表檢索連接信息;-如果至少一對網(wǎng)格點相應(yīng)于無效的連接,則拒絕在第一和第二構(gòu)建單元之間的連接;否則,如果至少一對網(wǎng)格點相應(yīng)于有效的連接,則接受在第一和第二構(gòu)建單元之間的連接。
因此,提供了用于檢測兩個相鄰的構(gòu)建單元是否可互連的有效的方法。術(shù)語一致的網(wǎng)格點包括具有相同的坐標(biāo)的網(wǎng)格點。在一個構(gòu)建單元被放置在離散的參考網(wǎng)格和所有的坐標(biāo)都是任意長度單位的倍數(shù)的實施例中,可能需要坐標(biāo)的精確的匹配,即,網(wǎng)格點位于公共的參考網(wǎng)格點。在連續(xù)或準(zhǔn)連續(xù)參考坐標(biāo)系統(tǒng)中,可能要求網(wǎng)格點在預(yù)定的邊界范圍內(nèi)一致。
當(dāng)每個連接單元還具有相關(guān)的方向時,另一個屬性與每個網(wǎng)格點相關(guān),由此提供更高的自由度。
術(shù)語連接信息打算包括有關(guān)一對連接類型的連接質(zhì)的信息,例如,對于給定的連接類型對,這些連接類型的兩個連接單元是否提供連接,它們是否使得連接不可能等等。在優(yōu)選實施例中,連接信息包括對于每對連接類型的指示符,表示一組預(yù)定的連接類型組,該組包含提供在相應(yīng)的連接單元對之間的連接的有效的連接、阻止在相應(yīng)的連接單元對之間的連接的無效的連接、以及不同的連接。
術(shù)語不同的連接包括一對連接類型,它們在被放置成處于預(yù)定的互相靠近程度時,不共同合作連接兩個相應(yīng)的構(gòu)建單元,但也不阻止這樣的放置。
因此,提供了可能的互連的有效的編碼。
在本發(fā)明的再一個優(yōu)選實施例中,確定以預(yù)定的互相靠近程度放置第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的步驟還包括從預(yù)定的連接單元子組中確定第一和第二連接單元。因此,只需要搜索連接單元子組,以確定相關(guān)的連接單元對,由此提高方法的有效性。
在另一個優(yōu)選實施例中,每個各數(shù)據(jù)結(jié)構(gòu)還表示相應(yīng)的構(gòu)建單元的邊界體積;方法還包括檢測第一和第二構(gòu)建單元的邊界體積的交叉;以及從預(yù)定的連接單元子組中確定第一和第二連接單元的步驟包括從被包括在所確定的交叉中的連接單元中確定第一和第二連接單元。因此,相關(guān)的構(gòu)建單元的子組被確定為可潛在地提供連接的連接單元,因為它們被包括在邊界的方盒的交叉中。
本發(fā)明的再一個優(yōu)點在于,它提供可以容易地擴展以便合并新類型的構(gòu)建單元和甚至新類型的連接單元的數(shù)據(jù)結(jié)構(gòu)和算法。例如,兩組不同類型的現(xiàn)有的玩具構(gòu)建單元的連接性質(zhì)可以組合,以使得不同玩具構(gòu)建組的構(gòu)建單元可以互相互連。
本發(fā)明的再一個優(yōu)點在于,即使在生成包括大量構(gòu)建單元的模型時,它提供不需要大的存儲容量的數(shù)據(jù)結(jié)構(gòu)。
本發(fā)明的再一個優(yōu)點在于,它提供檢測兩個或多個構(gòu)建單元是否被連接的有效方法,由此減小計算機對于確定構(gòu)建單元是否被互連所需要的處理時間。這在交互的計算機程序中是特別重要的,其中用戶可以相對于二者互相放置連接單元,因為在這種情形下,需要從放置或去除構(gòu)建單元直到確定模型的連接性質(zhì)的短的響應(yīng)時間。
本發(fā)明可以以不同的方式被實施,包括上面描述的和在下面提到的方法、系統(tǒng)和另外的產(chǎn)品裝置,它們每個都產(chǎn)生結(jié)合一開始提到的方法描述的一個或多個好處和優(yōu)點,以及每個都具有相應(yīng)于結(jié)合一開始提到的方法描述的和在從屬權(quán)利要求中公開的優(yōu)選實施例的一個或多個優(yōu)選實施例。
本發(fā)明還涉及數(shù)據(jù)處理系統(tǒng),包括-用于生成從多個互連的構(gòu)建單元構(gòu)建的幾何對象的計算機可讀的模型的裝置,其中每個構(gòu)建單元具有多個連接單元,用于連接構(gòu)建單元與另一個構(gòu)建單元;-用于編碼多個構(gòu)建單元的第一和第二構(gòu)建單元成為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu)的裝置,每個數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個連接單元具有與它有聯(lián)系的多個預(yù)定的連接類型之一;-用于確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的裝置;以及-用于檢索表示第一和第二連接單元是否提供在第一和第二構(gòu)建單元之間的連接的第一和第二連接單元的相應(yīng)的連接類型的連接信息的裝置。
應(yīng)當(dāng)指出,上面描述的和在下面提到的方法的特性可以以軟件實施以及在數(shù)據(jù)處理系統(tǒng)中或在通過執(zhí)行計算機可執(zhí)行的指令產(chǎn)生的其它處理裝置中被實行。指令可以是從存儲媒體或從另一個計算機經(jīng)由計算機網(wǎng)絡(luò)被裝載在諸如RAM的存儲器中的程序代碼裝置。替換地,描述的特征可以由硬連線電路被實施,而不是由軟件或與軟件相組合被實施。
本發(fā)明還涉及適合于執(zhí)行上面描述的和在下面提到的方法的數(shù)據(jù)處理系統(tǒng)。
本發(fā)明還涉及計算機程序,包括當(dāng)所述程序在計算機上運行時,用于執(zhí)行上面描述的和在下面提到的方法的所有的步驟的程序代碼裝置。
本發(fā)明還涉及計算機程序產(chǎn)品,包括當(dāng)所述程序產(chǎn)品在計算機上運行時,用于執(zhí)行上面描述的和在下面提到的方法的、被存儲在計算機可讀的媒體上的程序代碼裝置。
下面結(jié)合優(yōu)選實施例和參照附圖更加充分地說明本發(fā)明,其中
圖1a-e顯示按照本發(fā)明的實施例的構(gòu)建單元的表示的立體圖;圖2a-d顯示構(gòu)建單元和它們的連接單元的例子;圖3顯示構(gòu)建塊和它的兩個相應(yīng)的連接網(wǎng)格的立體圖;圖4顯示圖3的構(gòu)建塊的頂視圖;圖5a-b顯示每個表示構(gòu)建單元的表面的連接點的數(shù)據(jù)結(jié)構(gòu);圖6顯示在邊緣到邊緣擴展中的兩個構(gòu)建單元的頂視圖;圖7顯示包括兩個連接的構(gòu)建單元組的構(gòu)建單元的立體圖;以及圖8顯示在生成幾何對象的計算機可讀的模型的方法內(nèi)的放置構(gòu)建單元的方法的流程圖;圖9顯示按照本發(fā)明的實施例的連接數(shù)字構(gòu)建單元到另一個數(shù)字構(gòu)建單元的過程的流程圖;圖10顯示更新表示連接構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)的子過程的流程圖;圖11顯示按照本發(fā)明的實施例的用于生成幾何對象的計算機可讀的模型的數(shù)據(jù)處理系統(tǒng);以及圖12a-b顯示具有傾斜面的構(gòu)建塊和相應(yīng)的邊界體積的例子的側(cè)視圖。
具體實施例方式
圖1a-e顯示按照本發(fā)明的實施例的構(gòu)建單元的表示的立體圖。
圖1a顯示構(gòu)建單元101的表示。構(gòu)建單元101是在它的一個面103上具有可被連接到另一個構(gòu)建塊的相應(yīng)的孔的兩個旋鈕102的實際構(gòu)建塊的數(shù)字表示。構(gòu)建塊還包括從構(gòu)建塊的面105穿透構(gòu)建塊一直到相對的面的孔104。該孔適合于接納其它構(gòu)建塊的相應(yīng)的連接器。
構(gòu)建塊101的數(shù)字表示包括由圖1a的粗實線表示的邊界的體積106。邊界體積106是構(gòu)建塊101包括旋鈕102在內(nèi)的邊界體積。構(gòu)建塊的數(shù)字表示另外是相對于內(nèi)部右手坐標(biāo)系統(tǒng)107描述的。可以看到,坐標(biāo)系統(tǒng)的選擇,特別是它的原點的位置和軸的方向可以按照任何適當(dāng)?shù)膽T例被選擇。因此,在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,構(gòu)建塊的位置和方向可以由坐標(biāo)系統(tǒng)107相對于外部坐標(biāo)系統(tǒng)的原點的坐標(biāo)和軸的方向表示,例如,另一個構(gòu)建塊的坐標(biāo)系統(tǒng)或全”世界”坐標(biāo)系統(tǒng)。
邊界體積可以在相對于坐標(biāo)系統(tǒng)107的數(shù)據(jù)結(jié)構(gòu)中被表示,例如,通過相對于坐標(biāo)系統(tǒng)107的兩個角的110的坐標(biāo)被表示。
圖1b顯示具有邊界體積108的構(gòu)建塊101的表示,它包括不帶有旋鈕102的構(gòu)建塊。在一個實施例中,在不同的構(gòu)建塊之間的沖突的檢測依賴于邊界體積的類型,即,圖1a所示的邊界體積106與圖1b所示的邊界體積108。
按照本發(fā)明,構(gòu)建塊可以沿著它被連接到另一個構(gòu)建塊的每個面被劃分成方形,連接點在每個方形的中心處,即,方形的邊緣相應(yīng)于在相鄰的連接點之間的一半距離。
圖1c顯示構(gòu)建塊101,以及顯示在構(gòu)建塊的一個面上的連接單元的表示。該表示表示在包括兩個旋鈕102的構(gòu)建塊的面103上的方形網(wǎng)格。方形網(wǎng)格包括多個方形,每個以網(wǎng)格點作為中心,正如方形130和網(wǎng)格點111示例地表示的。每個網(wǎng)格點具有相關(guān)的方向,例如由網(wǎng)格點111的箭頭112的箭頭所示。網(wǎng)格109的網(wǎng)格點的方向指向外面,即,坐標(biāo)系統(tǒng)107的y軸的方向。因此,在數(shù)據(jù)結(jié)構(gòu)中,網(wǎng)格109的表示可包括預(yù)定的網(wǎng)格點--例如網(wǎng)格點113--相對于坐標(biāo)系統(tǒng)107的坐標(biāo);網(wǎng)格點的方向,即,箭頭114相對于坐標(biāo)系統(tǒng)的方向;網(wǎng)格尺寸,即,分別在x和y方向上方形的數(shù)目;以及與每個網(wǎng)格點有關(guān)的屬性。這樣的表示的例子將在后面更詳細地描述。
圖1d顯示構(gòu)建塊101的、與面103(圖1d上未示出)相對的面116的連接點120。構(gòu)建塊的這個面包括由邊緣118和小的中心旋鈕119,即所謂的輔助管腳,規(guī)定的兩個孔117。實際構(gòu)建塊的孔被安排成能夠容納另一個構(gòu)建塊的旋鈕,諸如旋鈕102,由此共同連接兩個構(gòu)建塊。按照本發(fā)明,孔是由網(wǎng)格120的相應(yīng)的網(wǎng)格點表示,如由箭頭121表示。
應(yīng)當(dāng)指出,按照本實施例,坐標(biāo)系統(tǒng)的原點相應(yīng)于網(wǎng)格點122。
圖1e顯示包括孔的構(gòu)建塊101的面105的連接網(wǎng)格123。相應(yīng)地,網(wǎng)格點124表示孔104的連接性質(zhì)。
可以看到,當(dāng)在顯示器上,例如在計算機屏幕上,圖形地表示構(gòu)建塊時,邊界體積、坐標(biāo)系統(tǒng)和網(wǎng)格不需要被顯示。優(yōu)選地,圖形表示只包括構(gòu)建塊本身的呈現(xiàn)。
圖2a-c顯示構(gòu)建單元和它們的連接單元的例子。
圖2a顯示兩個構(gòu)建塊201和202。構(gòu)建塊201是在它的頂面上具有四個旋鈕203和在它的底面(未示)上具有四個相應(yīng)的孔的磚。磚202是具有包括不互相正交的面的表面的構(gòu)建塊的例子。具體地,構(gòu)建塊202具有傾斜的面204。如圖2a所示,在它們的當(dāng)前的位置上,構(gòu)建塊201和202不連接。
圖2b顯示具有非矩形的頂面和底面的構(gòu)建塊210。底面包括孔211,212,和213,用于接納一個或多個其它構(gòu)建塊的相應(yīng)的旋鈕。這些孔由邊緣214、輔助管腳215、以及頂角216和217規(guī)定。因此,所有的以上的單元的性質(zhì)確定構(gòu)建塊的這個面的連接性質(zhì)。
圖2c顯示與構(gòu)建塊221相連接,由此形成組合的構(gòu)建塊的構(gòu)建塊220。構(gòu)建塊220包括在它的頂面上的旋鈕222,它們是裝配于另一個構(gòu)建塊的相應(yīng)的孔的連接器。然而,如圖2c所示,其它連接類型也可以實現(xiàn)在旋鈕之間的間隙223用作為用于其它連接器的接納器,諸如方塊221的側(cè)面224。對于實際的構(gòu)建塊,這個性質(zhì)由間隙的尺寸和構(gòu)建塊221的尺寸,即,由它的側(cè)面的寬度225決定。在按照本發(fā)明的數(shù)字表示中,這些性質(zhì)由連接點的相應(yīng)的屬性表示,正如下面更詳細地說明的。
圖2d顯示構(gòu)建塊與包括多個磚的另一個構(gòu)建塊的無效的連接。構(gòu)建塊231包括磚232,233,234,235,236和237。每個構(gòu)建塊包括如上所述的、旋鈕連接器和反旋鈕接納器。構(gòu)建塊232,233和236包括在頂面上以及在側(cè)面上的旋鈕連接器;具體地,構(gòu)建塊232包括在側(cè)面上的旋鈕238,而構(gòu)建塊233包括在側(cè)面上的旋鈕239,以及而構(gòu)建塊236包括在側(cè)面上的旋鈕240。
在圖2d的例子中,由于構(gòu)建塊的尺寸,它們的旋鈕和從而它們的相應(yīng)的連接點不形成常規(guī)的網(wǎng)格。因此,如果構(gòu)建塊試圖被放置在由其連接點由交叉242,243和244表示的點線241表示的位置,有效的連接是不可能的。下面將描述按照本發(fā)明的方法如何檢測這種情形。
圖3顯示構(gòu)建塊和它的相應(yīng)的連接網(wǎng)格的立體圖。構(gòu)建塊301具有帶有8個旋鈕303a-h的頂面302、帶有相應(yīng)的孔的底面和側(cè)面304。在圖3上,分別顯示頂面和底面的連接網(wǎng)格305和306。連接點307由圓圈顯示,如由圓圈307a-k示例地表示的。因此,連接點307a-h分別相應(yīng)于旋鈕303a-h。因為側(cè)面304沒有任何連接單元,對于它們不需要規(guī)定連接網(wǎng)格。在替換實施例中,對于側(cè)面可以規(guī)定只包括空白的接納器的連接網(wǎng)格。
正如可以從圖3看到的,由被放置在常規(guī)的網(wǎng)格中的連接點表示構(gòu)建塊的連接單元,對于連接單元在實際的構(gòu)建塊上的實際放置施加一定的限制條件。
網(wǎng)格305位于其上伸出旋鈕303的、構(gòu)建塊的頂面上。
在圖3的例子中,網(wǎng)格點被放置在方形網(wǎng)格中,其中每個方形具有任意長度單位(LU)的5×5單位的尺寸。因此,在這種幾何圖形中,連接單元也被放置在相應(yīng)的方形網(wǎng)格,以及在構(gòu)建塊的面上的連接單元之間的距離是10LU的倍數(shù)。在圖3的例子中,構(gòu)建塊的上表面和下表面是矩形,以及具有20LU×40LU的尺寸,相鄰的連接單元互相間隔開10LU。
另一方面,在垂直方向上,連接單元互相間隔開12LU。因此,不同的尺寸的網(wǎng)格尺寸可以變化,由此潛在地造成以上如圖2d所示的情形。
連接點的位置相對于構(gòu)建塊的內(nèi)部坐標(biāo)系統(tǒng)308被規(guī)定。
圖4顯示圖3的構(gòu)建塊的頂視圖。連接網(wǎng)格305被顯示為包括網(wǎng)格點。在圖3的例子中網(wǎng)格點的方向指向圖面的外面。
在一個實施例中,表示連接點的網(wǎng)格的數(shù)據(jù)結(jié)構(gòu),對于連接點,包括連接點相對于坐標(biāo)系統(tǒng)308的坐標(biāo)、連接單元的方向、以及連接類型。
當(dāng)設(shè)計新的構(gòu)建塊時,需要生成構(gòu)建塊的數(shù)字表示。圖4的例子中的磚具有在頂面上的45個連接點和在底面上的45個連接點。對于每個連接點規(guī)定以上的數(shù)值是費時和易出錯的任務(wù)。
然而,對于許多類型的構(gòu)建塊,連接點位于矩形結(jié)構(gòu),由此允許和有利的自動化數(shù)據(jù)生成。在圖4的例子中,連接點的坐標(biāo)可以迭代地確定,以及連接單元的方向?qū)τ诰W(wǎng)格的所有的連接點相同的。
因此,在優(yōu)選實施例中,表示連接點的網(wǎng)格的數(shù)據(jù)結(jié)構(gòu)包括-網(wǎng)格點401相對于坐標(biāo)系統(tǒng)308的坐標(biāo)。因此,在圖4的例子中,網(wǎng)格點401的以LU計的坐標(biāo)是P0=(-5,12,-15)。
-連接單元的方向,即,在圖4的例子中的(0,1,0)的方向,即,坐標(biāo)系統(tǒng)308的y軸的方向。
-在x和z方向上網(wǎng)格點的數(shù)目,即,在圖4的例子中,分別為nx=9和nz=5。
-5×9陣列的數(shù)據(jù)結(jié)構(gòu),每個包括相應(yīng)的連接點的連接質(zhì)。這樣的陣列的例子將在下面描述。
在圖4的例子中,每個連接點可以表示為P0+(5i,0.5j),對于i=0,...,4;j=0,...,8(以LU計)。
連接點的性質(zhì)然后可被表示為以i和j為索引的二維陣列C,其中C
相應(yīng)于連接點401以及C[I,j]相應(yīng)于具有坐標(biāo)P0+(5i,0.5j)的連接點。
在另一個實施例中,可以規(guī)定在連接網(wǎng)格的面上的二維坐標(biāo)系統(tǒng)。在圖4上,這是用坐標(biāo)系統(tǒng)402表示的。二維坐標(biāo)系統(tǒng)然后可以由它的原點401坐標(biāo)和相對于構(gòu)建塊的內(nèi)部坐標(biāo)系統(tǒng)的旋轉(zhuǎn)矩陣表示。
圖5a-b顯示按照本發(fā)明的表示連接點的數(shù)據(jù)結(jié)構(gòu)的例子。
圖5a顯示表示圖4的構(gòu)建塊的頂面網(wǎng)格的連接點的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)相應(yīng)于如上所述的二維陣列C[i,j]。每個陣列單元相應(yīng)于連接類型。例如,旋鈕(例如圖4的旋鈕303)被表示為C[I,j]=K,在兩個旋鈕之間的間隙(例如圖4的間隙404)被稱為”雙邊緣間隙”以及被表示為C[I,j]=2EG,在四個旋鈕的中心處的間隙(例如圖4的間隙405)被稱為”管道間隙”以及被表示為C[I,j]=TG。旋鈕是可以由另一個構(gòu)建塊的接納器接納的,例如由如圖2b所示的孔212接納的連接器。邊緣的接納器,該邊緣如圖2c所示成圖2b所示的邊緣211所示。邊緣間隙是可以接納其它邊緣的接納器,該邊緣如圖2c所示或圖2b所示的邊緣211所示。管道間隙是可接納例如適當(dāng)?shù)某叽绲男o或管道的其它連接器的接納器。
在構(gòu)建塊的邊界上,發(fā)生其它連接類型。頂角(例如圖4的頂角401)被表示為C[I,j]=1/4TG,因為它們相應(yīng)于只具有四個相鄰者中的一個的管道間隙。類似地,C[I,j]=1/2TG表示具有圍繞它的四個旋鈕中的兩個旋鈕的管道間隙,例如圖4的連接點406。最后,C[I,j]=EG相應(yīng)于只具有一個相鄰的旋鈕的邊緣間隙,例如圖4的連接點407。
可以看到,如圖4所示的、但具有不同的數(shù)目的旋鈕的構(gòu)建塊相應(yīng)于類似于圖5a所示的連接陣列。因此,表示這種類型的構(gòu)建塊的數(shù)據(jù)結(jié)構(gòu)可以通過規(guī)定構(gòu)建塊的尺寸而自動生成。
可以看到,通常,對于具有規(guī)則幾何形狀的構(gòu)建單元,可以規(guī)定多個不同的類型的連接陣列,例如,如圖3的構(gòu)建塊的規(guī)則構(gòu)建塊的頂面、側(cè)面和底面的陣列類型。這些陣列類型的例子然后可以對于類似的構(gòu)建單元的各種各樣不同的類型和尺寸被自動生成。因此,優(yōu)點是表示大量構(gòu)建塊的數(shù)據(jù)結(jié)構(gòu)以有效的方式被生成。
圖5b顯示相應(yīng)于圖2b所示的構(gòu)建塊的底面的連接陣列。這里,C[I,j]=EC相應(yīng)于邊緣頂角,例如圖2b上的頂角相應(yīng)于C
=EC。而且,C[I,j]=E相應(yīng)于”邊緣”,諸如圖2b上的邊緣214。C[I,j]=3/4EC相應(yīng)于頂角,諸如圖2b上的頂角216所示的。C[I,j]=AK相應(yīng)于”反旋鈕”,即,用于接納旋鈕的孔,而C[I,j]=SP相應(yīng)于”輔助管腳”215。
可以看到,即使在圖5a-b上的連接類型是由指示連接單元的實際的物理功能的記憶法表示,連接類型可以由任何其它適當(dāng)?shù)姆椒ǎ缤ㄟ^枚舉連接類型、比特編碼法等被編碼。
通常,連接類型可包括連接類別和參數(shù)。例如,連接類別管道間隙αTG,α=1/4,1/2,3/4,1。
不同的連接類型的連接質(zhì)在相應(yīng)的連接表中被規(guī)定。連接表表示對于每對連接類型的連接性質(zhì)。優(yōu)選地,連接表作為查找表被存儲在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。這樣的連接表的實施例被顯示于表1。
表1.
因此,表1中每個域表示相應(yīng)的兩個連接類型的連接。
表1的縮略的連接類型是K旋鈕,例如在圖1a-e上的旋鈕102,即,圓形單元。
SP輔助管腳,例如在圖2b上的輔助管腳215,即,小旋鈕。
E邊緣,例如在圖2b上的邊緣214,即,單元的外邊緣。
αEC具有參數(shù)α的邊緣頂角。3/4EC相應(yīng)于如圖2b的頂角216表示的頂角。
VC未占用的連接器,即,既不排斥大多數(shù)其它單元也不與另一個單元連接的構(gòu)建塊的部分,例如,光滑面。未占用的連接器排斥旋鈕,但不與任何其它接納器或連接器交互。
αAK具有參數(shù)α的反旋鈕,例如,圖2b上的反旋鈕215,即,旋鈕裝配進的不規(guī)則形孔。
αTG具有參數(shù)α的管道間隙。例如,圖4顯示具有α=1的管道間隙405,即,在四個相鄰的旋鈕之間的其中可裝配進管道的區(qū)域。
αEG具有參數(shù)α的邊緣間隙,例如,具有參數(shù)α=2的雙邊緣間隙和具有參數(shù)α=1的邊緣間隙407,即,在兩個相鄰的旋鈕之間的、或在旋鈕與邊緣之間的間隙。
VR未占用的接納器,即,既不排斥也不連接到任何其它單元的構(gòu)建塊的部分。
Tu管道,可以是用于旋鈕的接納器和可以是可被夾在四個相鄰的旋鈕之間,即,被夾入管道間隙的連接器的圓管道。
在表1上,以上連接類型的連接被表示為如下-T真實,即,連接是有效的,以及相應(yīng)的連接單元進行連接兩個構(gòu)建塊。
-F錯誤,即,在這種位置,連接是不允許的。
-V未占用的或無關(guān)緊要的,即,沒有東西阻止連接,但實際上也沒有連接到任何東西。
例如,按照表1,雙邊緣間隙(具有α=2的αEG)產(chǎn)生具有邊緣(E)的未占用的連接,而邊緣間隙,即,具有α=1的αEG實際上與邊緣(E)連接,即,在這種情形下的連接是真實(T)。
應(yīng)當(dāng)指出,表1的連接表是沿對角線對稱的。
還應(yīng)當(dāng)指出,通過對具有新的連接類型與各個現(xiàn)有的連接類型的相應(yīng)的連接的相應(yīng)的行和列相加,以上的表可以容易地擴展成包括新的連接類型。
圖6顯示在邊緣到邊緣擴展中的兩個構(gòu)建單元的頂視圖。在圖6的例子中,兩個構(gòu)建塊601和602被放置在邊緣到邊緣擴展中,即,它們的頂面被放置在同一個平面,以及它們的各個連接點的子組一致,如虛線603表示的。在圖6的例子中,假設(shè)每個構(gòu)建塊601和602是如圖3和4所示的類型。
通過把兩個構(gòu)建塊放置在邊緣到邊緣擴展中,在區(qū)域603中重疊的連接點的有效的連接類型被改變。例如,連接點605相應(yīng)于構(gòu)建塊601的類型1/4TG和構(gòu)建塊602的類型1/2TG的連接點。然而,當(dāng)被放置在圖6的邊緣到邊緣擴展時,組合的連接點605是3/4TG類型。類似地,連接點606是每個構(gòu)建塊601和602的類型EG,而它是組合的構(gòu)建塊中的類型2EG。最后,連接點607是每個構(gòu)建塊601和602的類型1/2TG,而它是組合的構(gòu)建塊中的類型TG。
因此,通常,連接單元的連接性質(zhì)可以取決于相應(yīng)的構(gòu)建單元相對于其它構(gòu)建單元的放置而改變。
按照本發(fā)明,這種情形可以通過規(guī)定描述重疊的連接點的組合的或最終得到的連接類型的連接表而被建模。表2是表示以上引入的連接類型的組合的這樣的組合表的例子。優(yōu)選地,組合表作為查找表被存儲在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。
表2.
在表2上,每個域包括組合的連接類型。如果兩個連接類型的組合不產(chǎn)生連接到任何其它連接類型的連接類型,則表的項目是F。
例如,當(dāng)邊緣間隙(βEG)被放置在未占用的連接器(VC)的下一個,例如空的表面時,最終得到的連接單元可被看作為更寬的間隙。在表2中,這用(β+1)EG近似。
還可以看到,以上的組合表也可以被使用來在兩個以上的連接單元,例如三個或四個構(gòu)建塊的頂角,要被組合的情形下,確定最終得到的連接類型。在這種情形下,可以通過首先確定對于兩個組合的連接單元的第一最終得到的連接類型,隨后確定對于第一最終得到的連接類型與第三連接單元的連接類型的組合的第二最終得到的連接類型,而確定對于例如三連接單元的最終得到的連接類型。
還應(yīng)當(dāng)指出,通過將相應(yīng)的行和列與由將新的連接類型與各個現(xiàn)有的連接類型相組合而得到的相應(yīng)的最終得到的連接類型相加,以上的表可以容易地擴展成包括新的連接類型。
因此,在上面,公開了用于構(gòu)建塊的連接性質(zhì)的有效的和可擴展的表示的數(shù)據(jù)結(jié)構(gòu)以及用于有關(guān)如何組合連接類型的法則的有效的和可擴展的表示的數(shù)據(jù)結(jié)構(gòu)。
圖7顯示包括兩個連接的組的構(gòu)建塊的幾何對象的立體圖。幾何對象包括五個單元701,702,703,704,和705。在圖7的例子中,幾何對象包括兩組構(gòu)建塊第一組構(gòu)建塊包括構(gòu)建塊701,702,和703,而第二組構(gòu)建塊包括構(gòu)建塊704和705。在本例中的構(gòu)建塊701和704例如通過單個旋鈕--上述的反旋鈕連接旋轉(zhuǎn)連接,或通過不阻止構(gòu)建塊彼此相對旋轉(zhuǎn)的任何其它連接方式,例如鉸鏈連接、在公共線上的兩個或多個旋鈕-反旋鈕連接等等,而被旋轉(zhuǎn)連接。因此,圖7的幾何對象是不必局限于在幾何對象內(nèi)給定的位置和方向限制條件的構(gòu)建塊的例子。這樣的連接的其它例子包括在允許連接的構(gòu)建塊的相對轉(zhuǎn)換的構(gòu)建塊之間的連接。因此,這樣的組的構(gòu)建塊可能需要用分開的坐標(biāo)系統(tǒng)進行描述,正如由網(wǎng)格系統(tǒng)706和707顯示的。
圖8顯示作為生成幾何對象的計算機可讀的模型的計算機實施過程的一部分放置構(gòu)建單元的方法的流程圖。
在初始步驟801,把構(gòu)建單元放置在預(yù)定的初始位置。構(gòu)建單元由如上所述的數(shù)據(jù)結(jié)構(gòu)表示,以及構(gòu)建單元的位置和方向由描述構(gòu)建單元的內(nèi)部坐標(biāo)系統(tǒng)相對于適當(dāng)?shù)淖鴺?biāo)系統(tǒng)--例如三維右手”世界”或參考坐標(biāo)系統(tǒng)--的位置和方向的適當(dāng)?shù)淖鴺?biāo)來描述。
因此,對于給定的情境,例如場景、幾何對象等等,過程生成和保持一組數(shù)據(jù)結(jié)構(gòu),每個表示被放置在該情境內(nèi)的構(gòu)建塊。把新的構(gòu)建單元放置在該上下文內(nèi),相應(yīng)于生成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)的新的例子作為該組數(shù)據(jù)結(jié)構(gòu)的一部分。
構(gòu)建單元的放置,例如可以在構(gòu)建幾何對象的數(shù)字模型的交互過程期間由用戶命令來引起。例如,計算機可以提供用戶接口,允許用戶選擇不同的構(gòu)建單元,例如,不同的類型、形狀、尺寸、顏色等等的構(gòu)建單元,以及以預(yù)定的位置和方向在計算機的顯示器上呈現(xiàn)的三維圖形場景中放置選擇的構(gòu)建單元。例如,用戶接口可以提供用于放置構(gòu)建單元的推拉操作和用于操控,例如旋轉(zhuǎn)構(gòu)建單元的操作。
在一個實施例中,構(gòu)建單元的放置可能被限制于例如在預(yù)定的網(wǎng)格上離散的位置,例如,在其中所有的距離被測量為任意長度單位(LU)的倍數(shù)的系統(tǒng)中,參考網(wǎng)格的網(wǎng)格點可能間隔開1LU。
在步驟802,計算機實施的過程檢測在步驟801放置的構(gòu)建單元在何處與已存在于場景中的任何其它構(gòu)建單元--例如先前由用戶放置的構(gòu)建單元--相交叉。這種沖突檢測可以通過適當(dāng)?shù)臎_突檢測方法被執(zhí)行,優(yōu)選地,通過基于構(gòu)建單元的邊界體積的沖突檢測方法被執(zhí)行。這樣的算法的例子例如在David H.Eberly“3D Game EngineDesign(3D游戲機設(shè)計)”,Morgan Kaujmann,2001中被公開。
沖突檢測可導(dǎo)致其中放置構(gòu)建單元的位置被另一個構(gòu)建單元占用。這種情形可以通過檢測大于預(yù)定的邊界的邊界體積的交叉而被檢測。如果檢測到無效的交叉,則在這個位置和方向上構(gòu)建單元的放置可能被拒絕。
如果沒有檢測到無效的交叉,則在步驟803,過程測試新放置的構(gòu)建單元是否與另一個構(gòu)建單元有效交叉。例如,有效的交叉可被檢測為各個邊界體積的小于預(yù)定的邊界的交叉。
在圖1的實施例中,構(gòu)建單元的表示包括兩個邊界體積,一個邊界體積包括連接單元(圖1a),以及一個邊界體積包括構(gòu)建單元的本體但不包括連接單元(圖1b)。沖突檢測步驟可以使用這兩個邊界體積來檢測無效的沖突,如果沒有各構(gòu)建單元的連接單元的邊界體積重疊的話。如果包括連接單元的邊界體積重疊,但沒有連接單元的邊界體積不重疊,或如果任何邊界體積的任何表面交叉,但邊界體積不重疊,則檢測到有效的重疊。
進一步,檢測邊界體積是否被定向成使得它們的邊界體積的軸相應(yīng)于同一個參考坐標(biāo)系統(tǒng)。
如果沒有檢測到有效的沖突,則過程可以按照任何適當(dāng)?shù)牟呗赃M行。在某些實施例中,把新的構(gòu)建單元放置成未占用,而不連接到任何以前的構(gòu)建單元,可以是可接受的;在某些實施例中,這只在場景中不存在其它構(gòu)建單元的情形下才可以接受。
在另外一些實施例中,這可能被拒絕。例如,在一個實施例中,任何不具有用戶放置的構(gòu)建單元的初始場景可包括缺省構(gòu)建單元,例如,具有連接單元支撐板,用于把構(gòu)建單元放置在底板的頂面。
如果在步驟803檢測到在新的放置構(gòu)建單元與一個或多個其它構(gòu)建單元之間的有效沖突,過程在步驟804繼續(xù)進行以及檢驗新放置的構(gòu)建單元是否有效地被連接到與它有效地交叉的構(gòu)建單元。這個可連接檢測子過程的優(yōu)選實施例將在下面更詳細地描述。如果構(gòu)建單元有效地連接到與它交叉的構(gòu)建單元,則連接檢測導(dǎo)致接受構(gòu)建單元的放置,或如果構(gòu)建單元沒有有效地連接到任何一個與它交叉的構(gòu)建單元,則導(dǎo)致拒絕。
一旦構(gòu)建單元的放置被接受或拒絕,過程就可通過用戶的行動,例如通過把被拒絕的構(gòu)建單元重新放置在另一個位置和/或方向,通過把另一個構(gòu)建單元放置在場景等等,而被再次初始化。
圖9顯示按照本發(fā)明的實施例的連接第一數(shù)字構(gòu)建單元到另一個第二數(shù)字構(gòu)建單元的子過程804的流程圖。例如,第一構(gòu)建單元可以是新放置的磚,以及第二構(gòu)建單元可以是以前構(gòu)建的磚結(jié)構(gòu),其中檢測算法檢測在新放置的磚與第二構(gòu)建單元之間的交叉。
下面,假設(shè)在構(gòu)建單元的初始位置處,構(gòu)建單元被定向成使得它們的邊界體積的主軸相應(yīng)于右手正交世界坐標(biāo)系統(tǒng)的x、y、和z軸。
在本實施例中,還假設(shè)對于連接單元在構(gòu)建單元上的放置施加多個預(yù)定的法則,雖然連接單元本身在性質(zhì)和形狀上是不同的。
連接單元的放置的假設(shè)是對于每個構(gòu)建單元,在同一個水平面上所有的連接單元的軸相應(yīng)于在相鄰的分段之間具有固定的距離的正交網(wǎng)格的分段。
在水平面和垂直面上連接單元的軸之間的距離不需要是相同的。
在初始步驟902,第一構(gòu)建單元和第二構(gòu)建單元的所有的連接點屬于檢測的交叉。只有還沒有被連接的那些連接點需要考慮;這些連接點將被稱為相關(guān)的連接點。
在步驟903,選擇第一構(gòu)建單元的第一相關(guān)連接點。這可以是任意選擇的連接點、由用戶選擇的連接點等等。
在步驟904,對于第一構(gòu)建單元的選擇的連接點,過程檢驗是否有與選擇的連接點相同的坐標(biāo)的第二構(gòu)建單元的任何相關(guān)的連接點。在一個其中構(gòu)建單元被放置在分離的體積參考網(wǎng)格以及所有的坐標(biāo)都是任意長度單位的倍數(shù)的實施例中,可能需要精確的坐標(biāo)匹配。在連續(xù)、或準(zhǔn)連續(xù)參考坐標(biāo)系統(tǒng)中,可能要求網(wǎng)格點在預(yù)定的邊界內(nèi)相一致。
如果沒有找到這樣的連接點,過程在步驟914繼續(xù)進行。
在步驟914,檢測在選擇的連接點的預(yù)定的靠近程度內(nèi)是否有任何其它相關(guān)的連接點。在圖9的實施例中,預(yù)定的靠近程度相應(yīng)于圍繞選擇的連接點(x,y,z)的立方體(x±5LU,y±5LU,z±5LU),因為在本實施例中,在兩個相鄰的連接單元之間的距離是10LU。如果在選擇的連接點的預(yù)定的靠近程度內(nèi)有其它相關(guān)的連接點,則兩個構(gòu)建單元的連接被拒絕(步驟911)以及算法結(jié)束。因此,由于本實施例中的連接點被放置在規(guī)則的網(wǎng)格,構(gòu)建單元的無效的放置可被有效地檢測如果對于第一構(gòu)建單元的一個相關(guān)的連接點,發(fā)現(xiàn)與第二構(gòu)建單元的相關(guān)的連接點不匹配,則不需要檢驗第一構(gòu)建單元的其余的連接單元,由此提高檢測過程的速度。以上測試保證如圖2d所示的連接被拒絕,因為相應(yīng)于旋鈕239的連接點相對于規(guī)則網(wǎng)格被誤放置。應(yīng)當(dāng)指出,在圖2的例子中,連接點243不引起沖突,因為由于高度上輕微的不同,它不屬于邊界體積的交叉,即,磚241與236之間沒有接觸。
如果在步驟914沒有發(fā)現(xiàn)沖突的相關(guān)的連接點,則過程在步驟909繼續(xù)進行。
如果在步驟904發(fā)現(xiàn)匹配的連接點,則過程在步驟905繼續(xù)進行,在其中檢測在選擇的連接點的預(yù)定的靠近程度內(nèi),--在本實施例中,如上所述,在圍繞選擇的連接點(x,y,z)的立方體(x±5LU,y±5LU,z±5LU)中--是否有任何其它相關(guān)的連接點。如果在預(yù)定的靠近程度中找到另一個連接點,則該位置被拒絕(步驟911)。否則,過程在步驟906繼續(xù)進行。
在替換實施例中,以上的限制是不希望的。而且,在又一個實施例中,以上的限制可能限于某些連接類型,例如,在以上的例子中,不同于”未占用”的所有的連接類型。
在步驟906,過程檢測選擇的連接點和檢測的匹配連接點是否具有相反的方向,即,是否它們相關(guān)的方向是沿公共線、但取不同的方向。因此,只有被以適合于它們接合的相對方向放置的連接單元才被接受。
應(yīng)當(dāng)指出,在替換實施例中,例如通過在其中連接單元接受一定范圍的方向的實施例中,接受一定范圍的方向,這個限制可以放松。
如果連接點的相對方向被接受,則過程在步驟907繼續(xù)進行,否則該位置被拒絕(步驟911)。
在步驟907,通過從存儲的連接表913,例如按照以上的表1的連接表檢索相應(yīng)的連接類型對的連接法則,而比較選擇的連接點與相應(yīng)的檢測的匹配連接點的連接類型。在本實施例中,該連接可能為真、假、或未占用,如結(jié)合表1所述的。
在以后的步驟908,測試連接結(jié)果是否為“假”,即,在相應(yīng)的連接類型之間的有效的連接是否不可能的。如果連接結(jié)果是“假”的,則第一構(gòu)建單元的位置被拒絕(步驟911)。否則,連接結(jié)果被存儲以及過程在步驟909繼續(xù)進行。
在步驟909,測試第一構(gòu)建單元的所有的相關(guān)連接點是否被處理。如果沒有被處理,則選擇還沒有被處理的相關(guān)的連接點(步驟912)以及通過對于新選擇的連接點執(zhí)行以上步驟904,905,906,907和908而處理該連接點。
如果第一構(gòu)建單元的所有的相關(guān)的連接點都已被處理以及位置未被拒絕,則該位置被接受以及過程在步驟910繼續(xù)進行。在步驟910,根據(jù)存儲的連接結(jié)果,確定構(gòu)建單元如何連接,以及它們的各自的數(shù)據(jù)結(jié)構(gòu)如何隨之被更新。這將結(jié)合圖10更詳細地描述。一旦數(shù)據(jù)結(jié)構(gòu)被更新,子過程就終結(jié)和返回到圖8的總的過程。
圖10顯示更新表示連接的構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)的子過程910的實施例的流程圖。這個更新基于對于第一和第二構(gòu)建單元的邊界體積的交叉的相關(guān)的連接點所確定的連接結(jié)果。
初始地,在步驟1001,檢驗所有的連接結(jié)果是否都是”未占用”。如果是的話,即,如果沒有東西阻止構(gòu)建單元的位置,但實際上也沒有連接單元進行連接構(gòu)建單元,則新的構(gòu)建單元在它的現(xiàn)在的位置被允許。
取決于應(yīng)用,第一和第二構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)可被更新。優(yōu)選地,由于構(gòu)建單元實際上沒有被連接,第一構(gòu)建單元不應(yīng)當(dāng)與第二連接類型相組合成具有組合的邊界體積等等的組合的構(gòu)建單元。
在一個實施例中,附加算法可以根據(jù)邊界體積,判決被放置在這個位置的實際的構(gòu)建塊是否下落、傾斜等等以及相應(yīng)地允許還是拒絕該位置。
否則,即,如果一個或多個連接結(jié)果為真,過程在步驟1002繼續(xù)進行,在該步驟,過程確定構(gòu)建單元如何被連接,即,它們是否剛性地被連接或連接是否允許相對旋轉(zhuǎn)、轉(zhuǎn)換等等。
在圖1a-e的實施例中,如果正好一個連接結(jié)果為真以及所有其它的未占用,則取決于連接類型旋轉(zhuǎn)和/或轉(zhuǎn)換是可能的。而且,如果一個以上的連接結(jié)果為真以及相應(yīng)的連接點都處在公共線上,則旋轉(zhuǎn)和/或轉(zhuǎn)換是可能的。
如果檢測到非剛性的連接,則過程在步驟1005繼續(xù)進行,在該步驟,第一和第二構(gòu)建單元被分配給各個組,每個組具有它們的各自的參考坐標(biāo)系統(tǒng)、邊界體積等等,由此允許對于構(gòu)建單元組的不同的相對位置和/或方向建模。這樣的情形的例子是以上結(jié)合圖7說明的。
因此,構(gòu)建單元的連接的結(jié)構(gòu)可以通過包括多個組的構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)被描述。一個組是其中所有的構(gòu)建單元被剛性地連接,以使得所有的構(gòu)建單元的所有的連接點是同一個正交網(wǎng)格的網(wǎng)格點的結(jié)構(gòu)。每個組的構(gòu)建單元包括一個或多個構(gòu)建單元,在其中該組確定公共正交坐標(biāo)系統(tǒng)(網(wǎng)格)、邊界體積、和該組的構(gòu)建單元的連接網(wǎng)格。
如果在步驟1002檢測到剛性連接,則過程在步驟1003繼續(xù)進行。正如以上結(jié)合圖6描述的,第一和第二構(gòu)建單元的一個或多個連接點由于連接可以改變它們的連接類型。因此,在步驟1003,檢測第一和第二構(gòu)建單元的,具有相同位置和相同方向的那些連接點。對于那些組合的連接點,在存儲的組合表1006中查找最終得到的連接類型,如以上結(jié)合表2所描述的。
最后,在步驟1004,第二構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)用來自第一構(gòu)建單元的信息被更新,即,第二構(gòu)建單元的邊界體積被更新為第一和第二構(gòu)建單元的邊界體積的聯(lián)合,連接網(wǎng)格被更新為也包括第一構(gòu)建單元的連接點等等。
通過重復(fù)圖8、9、和10的過程,多個構(gòu)建單元可被組合而形成幾何對象的數(shù)字模型。因此,以上公開了用于生成幾何對象的數(shù)字模型的方法。
可以看到,本領(lǐng)域技術(shù)人員可以在本發(fā)明的范圍內(nèi)實施以上方法的變例。例如,以上步驟的某些步驟的次序可被改變,步驟可被組合等等。
而且,由于不正確的放置,例如因為沒有找到在同一個位置處的連接點或因為連接點沒有正好相反的方向,而產(chǎn)生新的連接單元的位置的拒絕可導(dǎo)致進一步處理,而不是簡單的拒絕。在一個實施例中,假設(shè)的相鄰的位置或小的移位可被分析,以決定是否可以達到可接受的位置。這可導(dǎo)致構(gòu)建單元在預(yù)定的邊界內(nèi)快速進到提供可接受的位置的、最接近的位置。
而且,可以施加附加限制或可以釋放其它限制,以便以或多或少的自由度和進而或多或少的復(fù)雜性來提供建模系統(tǒng)。
當(dāng)構(gòu)建單元例如響應(yīng)于相應(yīng)的用戶命令從結(jié)構(gòu)中被去除時,它的數(shù)據(jù)結(jié)構(gòu)從組合的數(shù)據(jù)結(jié)構(gòu)中被去除。在一個實施例中,這可以通過重新計算其余的構(gòu)建單元的組合的數(shù)據(jù)結(jié)構(gòu)而被實施。
圖11顯示按照本發(fā)明的實施例的用于生成幾何對象的計算機可讀的模型的數(shù)據(jù)處理系統(tǒng)。
表示為1101的計算機系統(tǒng)適合于實現(xiàn)設(shè)計、存儲、操控、和共享按照本發(fā)明的幾何結(jié)構(gòu)。計算機系統(tǒng)1101可被用作為獨立的系統(tǒng)或作為客戶機/服務(wù)器系統(tǒng)中的客戶機。計算機包括存儲器1102,部分被實施為易失性和非易失性存儲器裝置,例如硬盤和隨機存取存儲器(RAM)。存儲器包括模型代碼解譯器1107、模型代碼生成器1108、UI-事件處理器1109、和由中央處理單元1103可執(zhí)行的建模應(yīng)用1110。另外,存儲器包括模型數(shù)據(jù)1111。
模型代碼解譯器1107適合于讀出和解譯規(guī)定按照本發(fā)明的模型的代碼,即,表示模型的構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)的代碼。在優(yōu)選實施例中,代碼解譯器適合于讀出按照本發(fā)明的模型和把這樣的模型變換成用于在計算機顯示器上呈現(xiàn)的已知的圖形格式。根據(jù)以上描述的用于表示對象的模型的數(shù)據(jù)結(jié)構(gòu),這個變換可以由本領(lǐng)域技術(shù)人員通過應(yīng)用在圖形計算領(lǐng)域內(nèi)公知的圖形原理被實施。
UI-事件處理器1109適合于把用戶與用戶接口的交互變換成可由模型代碼生成器1108識別的適當(dāng)?shù)挠脩裘???赡艿暮涂勺R別的命令組可包括例如通過開始旋轉(zhuǎn)等等,從單元庫中得到構(gòu)建單元、把要被連接的構(gòu)建單元放置在另一個構(gòu)建單元、斷開構(gòu)建單元、丟棄構(gòu)建單元、操控一個構(gòu)建單元、一組構(gòu)建單元等等。每個命令可以與一組各個參數(shù),例如構(gòu)建單元的坐標(biāo)、類型等等相關(guān)。
代碼生成器1108適合于按照上述的本發(fā)明和響應(yīng)于用戶的命令修正描述實際的模型的數(shù)據(jù)結(jié)構(gòu)。作為同時或以后的任務(wù),代碼解譯器可被執(zhí)行,用來顯示代碼生成器的結(jié)果。
建模應(yīng)用1110適合于控制存儲器、文件、用戶接口等等。
用戶1105能夠借助于用戶接口1106與計算機系統(tǒng)1101交互。
為了裝載模型、幾何描述、或其它數(shù)據(jù),計算機系統(tǒng)包括輸入/輸出單元(I/O)1104。輸入/輸出單元可被用作為到不同類型的存儲媒體和不同類型的計算機網(wǎng)絡(luò)-例如互連網(wǎng)-的接口。而且,輸入/輸出單元(I/O)1104可被使用于例如交互地與其它用戶交換模型。
在存儲器1102、中央處理單元(CPU)1103、用戶接口(UI)1106、與輸入/輸出單元1104之間的數(shù)據(jù)交換是通過數(shù)據(jù)總線1112完成的。
圖12a顯示按照本發(fā)明的第一實施例的、具有傾斜面和相應(yīng)的邊界體積的構(gòu)建塊-例如圖2a的構(gòu)建塊202-的側(cè)視圖。構(gòu)建塊包括傾斜面204和在構(gòu)建塊的頂面上的旋鈕1201。按照本例,構(gòu)建塊202的表示包括邊界體積的分層結(jié)構(gòu)。第一邊界體積1202包括傾斜面,而第二邊界體積1203是具有互相正交的面的方盒。按照本例,只要邊界體積1203具有與另一個構(gòu)建塊的相應(yīng)的邊界體積的交叉,兩個構(gòu)建塊就被檢測為接觸的。邊界體積1202可被使用于可能連接的構(gòu)建塊的初始的有效檢測??梢钥吹剑瑯?gòu)建塊202的表示可包括附加邊界體積,諸如包括如結(jié)合圖1a-b描述的連接單元的邊界體積。
圖12b顯示按照本發(fā)明的第二實施例的具有傾斜面和相應(yīng)的邊界體積的構(gòu)建塊202的側(cè)視圖。與以上例子一樣,構(gòu)建塊202的表示包括邊界體積分層結(jié)構(gòu)。然而,按照本例,該表示包括具有像階躍函數(shù)那樣形狀的邊界體積1204,而不是具有傾斜面的邊界體積,由此提供傾斜面的近似。
以上方法和系統(tǒng)可以被應(yīng)用于設(shè)計物理模型的計算機應(yīng)用,例如仿真相應(yīng)的實際的連接單元組的連接行為的計算機應(yīng)用。例如,實際的玩具構(gòu)建組可通過所述構(gòu)建組的數(shù)字版本補充,由此允許用戶,例如兒童,來數(shù)字地設(shè)計模型,而不用限制可用的構(gòu)建單元的數(shù)目等等,由此提供有趣的播放經(jīng)驗。本發(fā)明的優(yōu)點在于,它提供允許對實際的構(gòu)建組的甚至更加復(fù)雜的連接性質(zhì)逼真地建模的方法和系統(tǒng)以及同時提供有效的建模過程。因此,用戶經(jīng)受交互的數(shù)字構(gòu)建過程,而不必等待計算機確定建議的構(gòu)建單元的位置是否相應(yīng)于構(gòu)建組的連接法則。
本方法還可被應(yīng)用來分析設(shè)計的模型的特性、生成構(gòu)建指令等等。一般地,本方法可應(yīng)用于計算機游戲工業(yè)和其中預(yù)定的3D單元必須按照多個連接法則被放置在一起的計算機圖形學(xué)的所有其它領(lǐng)域。
權(quán)利要求
1.一種生成由多個可互連的構(gòu)建單元構(gòu)建的幾何對象的計算機可讀的模型的方法,其中每個構(gòu)建單元具有多個用于將該構(gòu)建單元與另一個構(gòu)建單元相連接的連接單元,該方法包括把多個構(gòu)建單元中的第一和第二構(gòu)建單元編碼為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu),每個數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個連接單元具有與它有關(guān)的多個預(yù)定的連接類型中的一個連接類型;確定以預(yù)定的互相靠近程度定位的區(qū)域的第一構(gòu)建單元的第一連接單元以及第二構(gòu)建單元的第二連接單元;以及檢索第一和第二連接單元的相應(yīng)的連接類型的連接信息,該信息表示第一和第二連接單元是否提供在第一和第二連接單元之間的連接。
2.按照權(quán)利要求1的方法,其特征在于,該方法還包括提供包括成對的連接類型的連接信息的連接表;以及檢索連接信息的步驟包括從連接表檢索連接信息。
3.按照權(quán)利要求1或2的方法,其特征在于,該方法還包括-提供包括對于每個預(yù)定組的成對的連接類型的最終得到的連接類型的組合表;-確定以預(yù)定的相互幾何關(guān)系被放置的第一和第二連接單元;-從組合表檢索第一和第二連接單元的最終得到的連接類型;以及-把檢索的最終得到的連接類型至少指定給最終得到的連接單元。
4.按照權(quán)利要求1到3的任一項的方法,其特征在于,各個數(shù)據(jù)結(jié)構(gòu)的每一個還表示相對于相應(yīng)的構(gòu)建單元的多個網(wǎng)格,每個網(wǎng)格具有多個網(wǎng)格點;以及構(gòu)建單元的每個連接單元與一個網(wǎng)格點相關(guān)以及具有相應(yīng)的連接類型。
5.按照權(quán)利要求4的方法,其特征在于,每個網(wǎng)格具有至少一個網(wǎng)格邊緣,以及該方法還包括-提供包括對于每對連接類型的最終得到的連接類型的組合表;-檢測第一連接單元的第一網(wǎng)格是否被放置在第二連接單元的第二網(wǎng)格的邊緣對邊緣擴展處,第一網(wǎng)格的第一邊緣對準(zhǔn)第二網(wǎng)格的第二邊緣;-對于第一網(wǎng)格的第一連接單元,識別第二網(wǎng)格的相應(yīng)的第二連接單元;-從組合表檢索第一和第二連接單元的組合的最終得到的連接類型;以及-把檢索的最終得到的連接類型指定給第一和第二連接單元。
6.按照權(quán)利要求4或5的方法,其特征在于,各個數(shù)據(jù)結(jié)構(gòu)的每一個還表示相應(yīng)的構(gòu)建單元的邊界體積;以及每個網(wǎng)格相應(yīng)于邊界體積的一個面。
7.按照權(quán)利要求6的方法,其特征在于,該方法還包括編碼第一和第二構(gòu)建單元相對于共同的體積參考網(wǎng)格的各自的位置,相應(yīng)的第一和第二構(gòu)建單元的第一和第二網(wǎng)格相應(yīng)于體積參考網(wǎng)格的各自的第一和第二面;第一和第二網(wǎng)格的網(wǎng)格點相應(yīng)于體積參考網(wǎng)格的各自的參考網(wǎng)格點;以及檢測第一和第二網(wǎng)格是否相應(yīng)于體積參考網(wǎng)格的公共面,以及第一網(wǎng)格的至少第一網(wǎng)格點是否位于與第二網(wǎng)格的第二網(wǎng)格點相同的參考網(wǎng)格點。
8.按照權(quán)利要求7的方法,其特征在于,該方法還包括-識別第一和第二網(wǎng)格的所有的一致的網(wǎng)格點對;-對于每個識別的網(wǎng)格點對,從連接表檢索連接信息;-如果至少一對網(wǎng)格點相應(yīng)于無效的連接,則拒絕在第一和第二構(gòu)建單元之間的連接;否則,如果至少一對網(wǎng)格點相應(yīng)于有效的連接,則接受在第一和第二構(gòu)建單元之間的連接。
9.按照權(quán)利要求1到8的任一項的方法,其特征在于,每個連接單元還具有相關(guān)的方向。
10.按照權(quán)利要求1到9的任一項的方法,其特征在于,連接信息包括對于每對連接類型的指示符,表示預(yù)定的連接類型組中的一個,該組包括有效連接,其提供相應(yīng)連接單元對之間的連接;無效連接,其阻止相應(yīng)的連接單元對之間的連接;和無關(guān)緊要的連接。
11.按照權(quán)利要求1到10的任一項的方法,其特征在于,確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的步驟還包括從預(yù)定的連接單元子組中確定第一和第二連接單元。
12.按照權(quán)利要求11的方法,其特征在于,各個數(shù)據(jù)結(jié)構(gòu)的每一個還表示相應(yīng)的構(gòu)建單元的邊界體積;該方法還包括檢測第一和第二構(gòu)建單元的邊界體積的交叉;以及從預(yù)定的連接單元子組中確定第一和第二連接單元的步驟包括從被包括在所確定的交叉中的連接單元確定第一和第二連接單元。
13.一種數(shù)據(jù)處理系統(tǒng),包括用于生成從多個互連的構(gòu)建單元構(gòu)建的幾何對象的計算機可讀的模型的裝置,其中每個構(gòu)建單元具有多個連接單元,用于連接構(gòu)建單元與另一個構(gòu)建單元;用于編碼多個構(gòu)建單元中的第一和第二構(gòu)建單元為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu)的裝置,每個數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個連接單元具有與它有聯(lián)系的多個預(yù)定的連接類型之一;用于確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的裝置;以及用于檢索表示第一和第二連接單元是否提供在第一和第二構(gòu)建單元之間的連接的、第一和第二連接單元的相應(yīng)的連接類型的連接信息的裝置。
14.按照權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其特征在于,數(shù)據(jù)處理系統(tǒng)還包括存儲裝置,用于存儲包括連接類型對的連接信息的連接表。
15.按照權(quán)利要求13或14的數(shù)據(jù)處理系統(tǒng),其特征在于,數(shù)據(jù)處理系統(tǒng)還包括存儲裝置,用于存儲包括對于每個預(yù)定組的連接類型對最終得到的連接類型的組合表。
16.一種計算機程序,包括當(dāng)所述程序在計算機上運行時用于執(zhí)行權(quán)利要求1到12的任一項的所有的步驟的程序代碼裝置。
17.一種計算機程序產(chǎn)品,包括當(dāng)所述程序產(chǎn)品在計算機上運行時用于執(zhí)行權(quán)利要求1到12的任一項的方法的被存儲在計算機可讀的媒體上的程序代碼裝置。
全文摘要
一種生成由多個可互連的構(gòu)建單元構(gòu)建的幾何對象的、計算機可讀的模型的方法,其中每個構(gòu)建單元具有多個用于與將該構(gòu)建單元另一個構(gòu)建單元相連接的連接單元。該方法包括把多個構(gòu)建單元的第一和第二構(gòu)建單元編碼為相應(yīng)的數(shù)據(jù)結(jié)構(gòu),每個數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個連接單元具有與它有關(guān)的預(yù)定的連接類型。該方法還包括確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元以及第二構(gòu)建單元的第二連接單元;以及檢索第一和第二連接單元的相應(yīng)的連接類型的連接信息,該信息表示第一和第二連接單元是否提供在第一和第二構(gòu)建單元之間的連接。
文檔編號G06T17/10GK1695170SQ200380100797
公開日2005年11月9日 申請日期2003年10月9日 優(yōu)先權(quán)日2002年10月11日
發(fā)明者奧爾加·蒂姆森克 申請人:英特萊格公司