国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      生成計(jì)算機(jī)可讀模型的方法

      文檔序號(hào):6422275閱讀:334來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):生成計(jì)算機(jī)可讀模型的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及借助于預(yù)定的幾何單元對(duì)于虛擬現(xiàn)實(shí)進(jìn)行計(jì)算機(jī)輔助建模的領(lǐng)域。
      背景技術(shù)
      虛擬現(xiàn)實(shí)的計(jì)算機(jī)輔助建模是在計(jì)算機(jī)系統(tǒng)中創(chuàng)建幾何對(duì)象的模型、解譯模型、操控模型和要么處理幾何對(duì)象的模型的任務(wù)。
      從第一個(gè)觀點(diǎn)看來(lái),虛擬現(xiàn)實(shí)的建模是感興趣的課題,因?yàn)樗沟糜锌赡茉谙敕ㄔ诂F(xiàn)實(shí)世界被實(shí)際地實(shí)施之前可以把該想法視覺(jué)化。如果可看見(jiàn)的現(xiàn)實(shí)模型足夠容易修正,在開(kāi)發(fā)和改進(jìn)幾何對(duì)象的過(guò)程中,比起其中相同的過(guò)程在現(xiàn)實(shí)世界中進(jìn)行的情形,可以節(jié)省大量時(shí)間。在現(xiàn)實(shí)世界中畫(huà)一個(gè)對(duì)象的簡(jiǎn)單的任務(wù)很容易花費(fèi)幾小時(shí),而計(jì)算機(jī)可以在幾毫秒或幾秒內(nèi)加上新的顏色,使得模型成為可看見(jiàn)的。
      從第二觀點(diǎn)看來(lái),虛擬現(xiàn)實(shí)的建模是感興趣的,因?yàn)樗沟糜锌赡軇?chuàng)建在現(xiàn)實(shí)世界中存在的對(duì)象的模型以及在某種意義上經(jīng)由計(jì)算機(jī)看見(jiàn)和操控該模型。因此,在現(xiàn)實(shí)世界中的對(duì)象的模型可被存儲(chǔ),用于不同的用途,例如用于先進(jìn)的文本提供。
      雖然存在有大量可能的應(yīng)用用于計(jì)算機(jī)輔助虛擬現(xiàn)實(shí)建模,但專(zhuān)門(mén)的應(yīng)用是使用用于娛樂(lè)或教育的虛擬現(xiàn)實(shí)建模。
      實(shí)際構(gòu)建玩具裝置的各種類(lèi)型的建模概念已知是這樣的。具體地,使用模塊的概念或半模塊概念從過(guò)去到現(xiàn)在是非常流行的。典型地,這些概念提供一組預(yù)先制造的單元,它們可以按照預(yù)先制造的單元的模塊以某種預(yù)定的方式互相連接。預(yù)先制造的單元類(lèi)似適合于具體的建模任務(wù)的熟知的對(duì)象。因此,例如在構(gòu)建房子的模型時(shí),這些單元類(lèi)似墻壁的磚、房頂?shù)耐?、門(mén)和窗。這樣地選擇單元的目的在于,在構(gòu)建房子的模型時(shí)牽涉到的工作,比起其中房子的所有的細(xì)節(jié)在每次制作新的模型時(shí)要被規(guī)定的情形來(lái)說(shuō),可大大地減小。然而,構(gòu)建房子或另外的對(duì)象的完全的自由度被構(gòu)建模型的簡(jiǎn)單性替換。
      具有預(yù)定的單元的這種方法在計(jì)算機(jī)輔助虛擬現(xiàn)實(shí)建模的技術(shù)方面是熟知的。另外,具有可以互相連接的模塊單元的概念是公知的。但當(dāng)涉及到計(jì)算機(jī)中的這樣的模型表示時(shí),具有預(yù)定的單元和模塊系統(tǒng)的概念的權(quán)宜方法在現(xiàn)有技術(shù)中沒(méi)有完全完成。
      只要計(jì)算機(jī)被使用于計(jì)算機(jī)輔助設(shè)計(jì)和建模,需要大的計(jì)算量的任務(wù)就是模型的可視性或操控,包括計(jì)算模型如何出現(xiàn)。這樣做的一個(gè)原因是虛擬現(xiàn)實(shí)建模的復(fù)雜性和改善被擴(kuò)展成遵循近年來(lái)可得到的計(jì)算機(jī)技術(shù)和計(jì)算能力。
      當(dāng)涉及到傳送和交換表示模型的數(shù)據(jù)時(shí),虛擬現(xiàn)實(shí)建模的復(fù)雜性和改善的缺點(diǎn)呈現(xiàn)得非常清楚。存儲(chǔ)單元或計(jì)算機(jī)通信網(wǎng)絡(luò)的形式的某種類(lèi)型的外部單元被連接到計(jì)算機(jī),從而擴(kuò)展用于存儲(chǔ)、裝載和/或發(fā)送、接收模型的信號(hào)路徑。典型地,這樣的信號(hào)路徑,比起在單個(gè)計(jì)算機(jī)內(nèi)的信號(hào)路徑,具有較低的帶寬。因此,需要表示模型的有效的方案。
      具體地,在生成可以經(jīng)由諸如連接器和相應(yīng)的接納器的連接單元被互連的、預(yù)定的單元或構(gòu)建單元的模型的情形下,引起確定兩個(gè)虛擬構(gòu)建單元在互相相對(duì)地放置在某個(gè)位置時(shí)是否可連接的通用的問(wèn)題??蛇B接信息是重要的信息,以便生成實(shí)際對(duì)象的現(xiàn)實(shí)模型,例如以便保證虛擬模型不包括沒(méi)有連接到建模的對(duì)象的支撐部件的浮在表面上的任何單元。
      在大多數(shù)現(xiàn)實(shí)世界的結(jié)構(gòu)組中,存在可以以許多不同的方式互連的各種各樣的不同的構(gòu)建單元。
      因此,本發(fā)明的一個(gè)目的是提供生成其中各種各樣的不同的構(gòu)建單元可被互連的幾何對(duì)象的計(jì)算機(jī)可讀的模型的方法。
      本發(fā)明的另一個(gè)目的是提供生成其中構(gòu)建單元可以以各種各樣可能的方式被互連的幾何對(duì)象的計(jì)算機(jī)可讀的模型的方法。

      發(fā)明內(nèi)容
      以上和其它問(wèn)題是通過(guò)生成從多個(gè)可互連的構(gòu)建單元構(gòu)建的幾何對(duì)象的計(jì)算機(jī)可讀的模型的方法解決的,其中每個(gè)構(gòu)建單元具有多個(gè)連接單元,用于將該構(gòu)建單元與另一個(gè)構(gòu)建單元相連接,方法包括把多個(gè)構(gòu)建單元的第一和第二構(gòu)建單元編碼為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu),每個(gè)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個(gè)連接單元具有與它有關(guān)的多個(gè)預(yù)定的連接類(lèi)型之一;確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元以及第二構(gòu)建單元的第二連接單元;以及檢索第一和第二連接單元的相應(yīng)的連接類(lèi)型的連接信息,表示第一和第二連接單元是否提供第一和第二連接單元之間的連接。
      本發(fā)明的一個(gè)優(yōu)點(diǎn)在于,它提供模型結(jié)構(gòu)和模型結(jié)構(gòu)的表示,該模型結(jié)構(gòu)的表示適合于表示由模塊玩具構(gòu)建單元組成的對(duì)象。
      本發(fā)明的另一個(gè)優(yōu)點(diǎn)在于,它提供對(duì)于各種各樣構(gòu)建單元的連接進(jìn)行建模的方法。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供對(duì)于各種各樣不同的連接單元,諸如不同的類(lèi)型的球、孔、管道、鉸鏈、棱、軸等的連接進(jìn)行建模的方法。通過(guò)提供多個(gè)具有連接類(lèi)型的連接單元,提供了與實(shí)際連接器的真實(shí)的幾何形狀無(wú)關(guān)的構(gòu)建單元的連接質(zhì)的表示。
      具體地,優(yōu)點(diǎn)在于,提供了與實(shí)際連接單元的外觀和它們的結(jié)構(gòu)無(wú)關(guān)的、對(duì)于各種各樣不同的連接單元的連接進(jìn)行建模的方法。
      因此,包括不同的類(lèi)型的連接單元的不同的預(yù)定的構(gòu)建單元的大型的組可被建模。
      術(shù)語(yǔ)構(gòu)建單元包括任何適當(dāng)類(lèi)型的具有用于把它與一個(gè)或多個(gè)其它構(gòu)建單元相連接并可被使用來(lái)創(chuàng)建實(shí)際對(duì)象和可以在計(jì)算機(jī)上被數(shù)字地表示的連接單元的構(gòu)建單元,。構(gòu)建單元的例子包括構(gòu)建玩具裝置的單元,例如,諸如磚等等的構(gòu)建塊。術(shù)語(yǔ)構(gòu)建單元還包括互連的較小的構(gòu)建單元-例如兩個(gè)或多個(gè)連接的磚-的組合體。
      在一個(gè)實(shí)施例中,連接類(lèi)型被編組為多個(gè)連接組,例如連接器、接納器、和混合單元。連接器是可被另一個(gè)構(gòu)建單元的接納器接納的連接單元,由此提供在構(gòu)建單元之間的連接。例如,連接器可以在另一個(gè)單元的部件之間適合于孔等等。接納器是可以接納另一個(gè)構(gòu)建單元的連接器的連接單元?;旌蠁卧强梢云鸬浇蛹{器和連接器的作用的部件,這典型地取決于另一個(gè)構(gòu)建單元的合作的連接單元的類(lèi)型。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供對(duì)于沿可以互相相對(duì)旋轉(zhuǎn)的不同的表面或面的連接進(jìn)行建模的方法。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供允許對(duì)于包括可移動(dòng)的部件和/或可旋轉(zhuǎn)的部件的復(fù)雜對(duì)象進(jìn)行建模的幾何對(duì)象的模型的緊湊表示。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供幾何對(duì)象的模型的緊湊表示。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供有可能非??焖俚厣珊徒庾g的模型結(jié)構(gòu)和模型結(jié)構(gòu)的表示。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供在當(dāng)模型被觀看、被生成或被操控時(shí)的相對(duì)較低的帶寬要求和低的處理時(shí)間的意義下,對(duì)經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)分發(fā)有利的模型結(jié)構(gòu)的表示。
      在本發(fā)明的優(yōu)選實(shí)施例中,方法還包括提供包括成對(duì)的連接類(lèi)型的可連接信息的連接表;以及檢索可連接信息的步驟,包括從連接表檢索連接信息。
      術(shù)語(yǔ)連接表打算包括任何適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)成對(duì)的連接類(lèi)型的連接信息。例如,這樣的數(shù)據(jù)結(jié)構(gòu)可以是以成對(duì)的連接類(lèi)型為索引的查找表。
      通過(guò)提供連接表,有效的和可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)被提供用于存儲(chǔ)與連接類(lèi)型對(duì)有關(guān)的連接信息。而且,使得快速連接檢測(cè)成為可能的。
      在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,每個(gè)各個(gè)數(shù)據(jù)結(jié)構(gòu)還表示相對(duì)于相應(yīng)的構(gòu)建單元的多個(gè)網(wǎng)格,每個(gè)網(wǎng)格具有多個(gè)網(wǎng)格點(diǎn);以及構(gòu)建單元的每個(gè)連接單元與一個(gè)網(wǎng)格點(diǎn)相關(guān),并具有相應(yīng)的連接類(lèi)型。
      因此,通過(guò)為網(wǎng)格結(jié)構(gòu),諸如方形網(wǎng)格,三角形網(wǎng)格等等,提供與相關(guān)的連接類(lèi)型有關(guān)的網(wǎng)格點(diǎn),各種連接單元的不同的性質(zhì),諸如尺寸、形狀、連接質(zhì)等等可被歸結(jié)為與每個(gè)網(wǎng)格點(diǎn)有關(guān)的一個(gè)或多個(gè)屬性。因此,實(shí)現(xiàn)構(gòu)建單元的連接質(zhì)的有效的表示。
      另一個(gè)優(yōu)點(diǎn)是通過(guò)把連接單元與網(wǎng)格點(diǎn)相關(guān),有可能特別簡(jiǎn)單地檢測(cè)兩個(gè)連接單元是否以預(yù)定互相靠近程度定位。例如,在一個(gè)其中構(gòu)建單元被放置在公共的離散體積參考網(wǎng)格中以及所有的坐標(biāo)是任意長(zhǎng)度單元的倍數(shù)的實(shí)施例中,對(duì)于在預(yù)定的鄰近區(qū)域內(nèi)、要考慮兩個(gè)連接單元處于預(yù)定靠近程度可能需要精確的坐標(biāo)匹配。在連續(xù)的或準(zhǔn)連續(xù)的參考坐標(biāo)系統(tǒng)中,可能要求網(wǎng)格點(diǎn)與預(yù)定的邊界一致,即,它們被以預(yù)定的互相靠近程度放置。靠近程度的尺寸可能取決于要被建模的實(shí)際的連接單元的類(lèi)型,如,為了連接它們實(shí)際上如何合作,以及取決于應(yīng)當(dāng)被加強(qiáng)的放置構(gòu)建單元的精度。
      優(yōu)選地,構(gòu)建單元可以沿著它被連接到另一個(gè)構(gòu)建單元的每個(gè)面被劃分成網(wǎng)格分段,例如,方塊,其中每個(gè)網(wǎng)格分段具有在中心的網(wǎng)格點(diǎn)。
      優(yōu)選地,每個(gè)連接單元具有相關(guān)的方向,表示連接單元可以沿該方向與相應(yīng)的連接單元嚙合。
      進(jìn)一步優(yōu)選地,位于公共面上和具有共同的方向的所有的連接單元相應(yīng)于具有在相鄰的網(wǎng)格點(diǎn)之間的預(yù)定的距離的正交網(wǎng)格的分段。優(yōu)選地,構(gòu)建單元組的所有的構(gòu)建單元中的連接單元按照預(yù)定的法則被放置在構(gòu)建單元上,允許把每個(gè)連接單元與相應(yīng)的網(wǎng)格點(diǎn)相關(guān)。
      然而,應(yīng)當(dāng)指出,在不同的非平行的平面上的連接單元在各個(gè)網(wǎng)格點(diǎn)之間不需要具有相同的距離。例如,在水平面上連接單元之間的距離可以是與在垂直面上連接單元之間的距離不同的。
      而且,通過(guò)把連接單元與預(yù)定的網(wǎng)格點(diǎn)相關(guān),可以以有效的方式確定第一構(gòu)建單元的連接單元是否處在第二構(gòu)建單元的連接單元的預(yù)定的靠近程度之內(nèi),因?yàn)榇_定可被限于識(shí)別相鄰的網(wǎng)格點(diǎn)。
      在另一個(gè)優(yōu)選實(shí)施例中,方法還包括-為每個(gè)預(yù)定組的成對(duì)的連接類(lèi)型,提供包括最終得到的連接類(lèi)型的組合表;
      -確定互相以預(yù)定的幾何關(guān)系放置的第一和第二連接單元;-從組合表檢索第一和第二連接單元的最終得到的連接類(lèi)型,以及-把檢索的最終得到的連接類(lèi)型指定給至少最終得到的連接單元。
      因此,優(yōu)點(diǎn)是連接單元的連接類(lèi)型是動(dòng)態(tài)的,即,它們可以根據(jù)構(gòu)建單元被放置到的幾何環(huán)境而改變,由此提供實(shí)際構(gòu)建單元的連接質(zhì)的更現(xiàn)實(shí)的建模。具體地,第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元,當(dāng)以預(yù)定的幾何關(guān)系互相放置時(shí),可以協(xié)同地提供與各個(gè)連接單元不同的連接性質(zhì)。
      第一和第二連接單元的協(xié)同的效果常常取決于它們的相互的幾何關(guān)系,即,連接單元互相相對(duì)地放置的方式,例如,它們互相放置得如何接近,它們互相放置的相對(duì)方向等等。在一個(gè)實(shí)施例中,這是通過(guò)確定第一和第二連接單元是否被以預(yù)定的互相靠近程度放置而被建模的;如果它們被以這樣的互相靠近程度放置,則把確定的最終得到的連接類(lèi)型指定給第一和第二連接單元。
      在實(shí)際結(jié)構(gòu)中,這是通過(guò)把最終得到的連接類(lèi)型至少指定給最終得到的連接單元而表示的。在一個(gè)實(shí)施例中,最終得到的連接單元是第一和第二連接單元之一。在另一個(gè)優(yōu)選實(shí)施例中,最終得到的連接類(lèi)型被指定給第一和第二連接單元。
      進(jìn)一步優(yōu)選地,如果相應(yīng)的構(gòu)建單元被重新放置以使得連接單元不再以需要的幾何關(guān)系被放置的話,第一和第二連接單元重新指定它們各自的原先的連接類(lèi)型。
      在替換實(shí)施例中,最終得到的連接單元可以是新的連接單元,例如,被規(guī)定為使得它具有相對(duì)于第一和第二連接單元位置的位置。
      可以看到,在某些實(shí)施例中,兩個(gè)以上的連接單元可被組合而產(chǎn)生最終得到的連接類(lèi)型。
      術(shù)語(yǔ)組合表打算包括任何適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)成對(duì)的連接類(lèi)型的最終得到的連接類(lèi)型。例如,這樣的數(shù)據(jù)結(jié)構(gòu)可以是以成對(duì)的連接類(lèi)型為索引的查找表,其中查找表的每個(gè)項(xiàng)目包括由一對(duì)連接單元的組合造成的最終產(chǎn)生的連接類(lèi)型,每個(gè)連接單元具有相應(yīng)的連接類(lèi)型對(duì)的各連接類(lèi)型。
      通過(guò)提供組合表,有效的和可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)被提供用于存儲(chǔ)有關(guān)連接單元的連接類(lèi)型由于它們與其它連接類(lèi)型的組合而可如何改變的信息。
      具體地,在虛擬構(gòu)建塊的情形下,經(jīng)常發(fā)生的情形是其中兩個(gè)構(gòu)建塊被互相鄰近地放置,即,以邊緣對(duì)邊緣的擴(kuò)展方式放置,以使得在相鄰的構(gòu)建塊的邊緣上的連接單元改變性質(zhì)。
      在另一個(gè)優(yōu)選實(shí)施例中,這種情形在與構(gòu)建單元有關(guān)的每個(gè)網(wǎng)格具有至少一個(gè)網(wǎng)格邊緣時(shí)被有效地建模,以及方法還包括-提供組合表,其包括對(duì)于每對(duì)連接類(lèi)型的最終得到的連接類(lèi)型;-檢測(cè)第一連接單元的第一網(wǎng)格是否被放置在第二連接單元的第二網(wǎng)格的邊緣對(duì)邊緣擴(kuò)展處,第一網(wǎng)格的第一邊緣對(duì)準(zhǔn)第二網(wǎng)格的第二邊緣;-對(duì)于第一網(wǎng)格的第一連接單元,識(shí)別第二網(wǎng)格的相應(yīng)的第二連接單元;-從組合表檢索第一和第二連接單元的組合的最終得到的連接類(lèi)型;以及-把檢索的最終得到的連接類(lèi)型指定給第一和第二連接單元。
      當(dāng)構(gòu)建單元以它們的各個(gè)邊緣相互靠近甚至互相接觸地來(lái)一個(gè)接一個(gè)放置時(shí),在相應(yīng)的邊緣上的連接單元可以根據(jù)在或接近于其它的構(gòu)建單元的相應(yīng)的邊緣上的連接單元的類(lèi)型來(lái)改變它們的性質(zhì)。
      通過(guò)提供包括對(duì)于每對(duì)連接類(lèi)型的最終得到的連接類(lèi)型的組合表;和通過(guò)把最終得到的連接類(lèi)型指定給在構(gòu)建單元的邊緣上的連接單元,如果檢測(cè)到邊緣到邊緣擴(kuò)展,則甚至共同合作的構(gòu)建單元的復(fù)雜的連接質(zhì)也可被建模。
      術(shù)語(yǔ)邊緣到邊緣擴(kuò)展包括兩個(gè)網(wǎng)格互相之間放置成它們的相應(yīng)的網(wǎng)格組合成組合的網(wǎng)格。因此,術(shù)語(yǔ)邊緣到邊緣擴(kuò)展包括兩個(gè)平行的網(wǎng)格,這兩個(gè)網(wǎng)格具有各自的平行網(wǎng)格邊緣和沿平行的網(wǎng)格邊緣的預(yù)定的重疊,以使得接近于邊緣的網(wǎng)格點(diǎn)一致。
      在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,每個(gè)各自的數(shù)據(jù)結(jié)構(gòu)還表示相應(yīng)的構(gòu)建單元的邊界的體積;以及每個(gè)網(wǎng)格相應(yīng)于邊界的體積的表面。
      因此,通過(guò)提供相應(yīng)的構(gòu)建單元的邊界的體積,其中網(wǎng)格相應(yīng)于邊界體積的表面,即使構(gòu)建單元具有復(fù)雜的形狀,每個(gè)構(gòu)建單元可以由小數(shù)目的網(wǎng)格表示。因此,可以實(shí)現(xiàn)兩個(gè)構(gòu)建單元的共同合作的連接單元的有效的檢測(cè),因?yàn)檫B接單元的形狀的復(fù)雜性被轉(zhuǎn)換成連接類(lèi)型,它又作為屬性同與邊界體積的表面有關(guān)的網(wǎng)格點(diǎn)相關(guān)。
      而且,通過(guò)采用已知的沖突檢測(cè)算法,邊界體積提供對(duì)于檢測(cè)到相鄰的構(gòu)建單元的有效表示。
      邊界體積可以是具有互相正交的面的邊界方盒,或具有不同形狀的邊界體積。
      在另一個(gè)優(yōu)選實(shí)施例中,方法還包括編碼第一和第二構(gòu)建單元相對(duì)于共同的體積參考網(wǎng)格的各個(gè)位置,相應(yīng)的第一和第二構(gòu)建單元的第一和第二網(wǎng)格相應(yīng)于體積參考網(wǎng)格的各自的第一和第二面;第一和第二網(wǎng)格的網(wǎng)格點(diǎn)相應(yīng)于體積參考網(wǎng)格的各自的參考網(wǎng)格點(diǎn);以及檢測(cè)第一和第二網(wǎng)格是否相應(yīng)于體積參考網(wǎng)格的公共面,以及第一網(wǎng)格的至少第一網(wǎng)格點(diǎn)是否位于與第二網(wǎng)格的第二網(wǎng)格點(diǎn)相同的參考網(wǎng)格點(diǎn)。
      因此,通過(guò)提供體積參考網(wǎng)格,例如立方體體積網(wǎng)格,以及規(guī)定表面網(wǎng)格為參考體積網(wǎng)格的面,提供特別簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),允許特別有效地檢測(cè)相鄰的網(wǎng)格點(diǎn)。
      優(yōu)選地,邊界體積被定義為相對(duì)于體積參考網(wǎng)格的面。在一個(gè)實(shí)施例中,它們與體積參考網(wǎng)格的網(wǎng)格面相一致,或替換地,可被規(guī)定為在體積參考網(wǎng)格的網(wǎng)格面之間的面。
      在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,方法還包括
      -識(shí)別第一和第二網(wǎng)格的所有的一致的網(wǎng)格點(diǎn)對(duì);-對(duì)于每個(gè)識(shí)別的網(wǎng)格點(diǎn)對(duì),從連接表檢索連接信息;-如果至少一對(duì)網(wǎng)格點(diǎn)相應(yīng)于無(wú)效的連接,則拒絕在第一和第二構(gòu)建單元之間的連接;否則,如果至少一對(duì)網(wǎng)格點(diǎn)相應(yīng)于有效的連接,則接受在第一和第二構(gòu)建單元之間的連接。
      因此,提供了用于檢測(cè)兩個(gè)相鄰的構(gòu)建單元是否可互連的有效的方法。術(shù)語(yǔ)一致的網(wǎng)格點(diǎn)包括具有相同的坐標(biāo)的網(wǎng)格點(diǎn)。在一個(gè)構(gòu)建單元被放置在離散的參考網(wǎng)格和所有的坐標(biāo)都是任意長(zhǎng)度單位的倍數(shù)的實(shí)施例中,可能需要坐標(biāo)的精確的匹配,即,網(wǎng)格點(diǎn)位于公共的參考網(wǎng)格點(diǎn)。在連續(xù)或準(zhǔn)連續(xù)參考坐標(biāo)系統(tǒng)中,可能要求網(wǎng)格點(diǎn)在預(yù)定的邊界范圍內(nèi)一致。
      當(dāng)每個(gè)連接單元還具有相關(guān)的方向時(shí),另一個(gè)屬性與每個(gè)網(wǎng)格點(diǎn)相關(guān),由此提供更高的自由度。
      術(shù)語(yǔ)連接信息打算包括有關(guān)一對(duì)連接類(lèi)型的連接質(zhì)的信息,例如,對(duì)于給定的連接類(lèi)型對(duì),這些連接類(lèi)型的兩個(gè)連接單元是否提供連接,它們是否使得連接不可能等等。在優(yōu)選實(shí)施例中,連接信息包括對(duì)于每對(duì)連接類(lèi)型的指示符,表示一組預(yù)定的連接類(lèi)型組,該組包含提供在相應(yīng)的連接單元對(duì)之間的連接的有效的連接、阻止在相應(yīng)的連接單元對(duì)之間的連接的無(wú)效的連接、以及不同的連接。
      術(shù)語(yǔ)不同的連接包括一對(duì)連接類(lèi)型,它們?cè)诒环胖贸商幱陬A(yù)定的互相靠近程度時(shí),不共同合作連接兩個(gè)相應(yīng)的構(gòu)建單元,但也不阻止這樣的放置。
      因此,提供了可能的互連的有效的編碼。
      在本發(fā)明的再一個(gè)優(yōu)選實(shí)施例中,確定以預(yù)定的互相靠近程度放置第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的步驟還包括從預(yù)定的連接單元子組中確定第一和第二連接單元。因此,只需要搜索連接單元子組,以確定相關(guān)的連接單元對(duì),由此提高方法的有效性。
      在另一個(gè)優(yōu)選實(shí)施例中,每個(gè)各數(shù)據(jù)結(jié)構(gòu)還表示相應(yīng)的構(gòu)建單元的邊界體積;方法還包括檢測(cè)第一和第二構(gòu)建單元的邊界體積的交叉;以及從預(yù)定的連接單元子組中確定第一和第二連接單元的步驟包括從被包括在所確定的交叉中的連接單元中確定第一和第二連接單元。因此,相關(guān)的構(gòu)建單元的子組被確定為可潛在地提供連接的連接單元,因?yàn)樗鼈儽话ㄔ谶吔绲姆胶械慕徊嬷小?br> 本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供可以容易地?cái)U(kuò)展以便合并新類(lèi)型的構(gòu)建單元和甚至新類(lèi)型的連接單元的數(shù)據(jù)結(jié)構(gòu)和算法。例如,兩組不同類(lèi)型的現(xiàn)有的玩具構(gòu)建單元的連接性質(zhì)可以組合,以使得不同玩具構(gòu)建組的構(gòu)建單元可以互相互連。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,即使在生成包括大量構(gòu)建單元的模型時(shí),它提供不需要大的存儲(chǔ)容量的數(shù)據(jù)結(jié)構(gòu)。
      本發(fā)明的再一個(gè)優(yōu)點(diǎn)在于,它提供檢測(cè)兩個(gè)或多個(gè)構(gòu)建單元是否被連接的有效方法,由此減小計(jì)算機(jī)對(duì)于確定構(gòu)建單元是否被互連所需要的處理時(shí)間。這在交互的計(jì)算機(jī)程序中是特別重要的,其中用戶(hù)可以相對(duì)于二者互相放置連接單元,因?yàn)樵谶@種情形下,需要從放置或去除構(gòu)建單元直到確定模型的連接性質(zhì)的短的響應(yīng)時(shí)間。
      本發(fā)明可以以不同的方式被實(shí)施,包括上面描述的和在下面提到的方法、系統(tǒng)和另外的產(chǎn)品裝置,它們每個(gè)都產(chǎn)生結(jié)合一開(kāi)始提到的方法描述的一個(gè)或多個(gè)好處和優(yōu)點(diǎn),以及每個(gè)都具有相應(yīng)于結(jié)合一開(kāi)始提到的方法描述的和在從屬權(quán)利要求中公開(kāi)的優(yōu)選實(shí)施例的一個(gè)或多個(gè)優(yōu)選實(shí)施例。
      本發(fā)明還涉及數(shù)據(jù)處理系統(tǒng),包括-用于生成從多個(gè)互連的構(gòu)建單元構(gòu)建的幾何對(duì)象的計(jì)算機(jī)可讀的模型的裝置,其中每個(gè)構(gòu)建單元具有多個(gè)連接單元,用于連接構(gòu)建單元與另一個(gè)構(gòu)建單元;-用于編碼多個(gè)構(gòu)建單元的第一和第二構(gòu)建單元成為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu)的裝置,每個(gè)數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個(gè)連接單元具有與它有聯(lián)系的多個(gè)預(yù)定的連接類(lèi)型之一;-用于確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的裝置;以及-用于檢索表示第一和第二連接單元是否提供在第一和第二構(gòu)建單元之間的連接的第一和第二連接單元的相應(yīng)的連接類(lèi)型的連接信息的裝置。
      應(yīng)當(dāng)指出,上面描述的和在下面提到的方法的特性可以以軟件實(shí)施以及在數(shù)據(jù)處理系統(tǒng)中或在通過(guò)執(zhí)行計(jì)算機(jī)可執(zhí)行的指令產(chǎn)生的其它處理裝置中被實(shí)行。指令可以是從存儲(chǔ)媒體或從另一個(gè)計(jì)算機(jī)經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)被裝載在諸如RAM的存儲(chǔ)器中的程序代碼裝置。替換地,描述的特征可以由硬連線電路被實(shí)施,而不是由軟件或與軟件相組合被實(shí)施。
      本發(fā)明還涉及適合于執(zhí)行上面描述的和在下面提到的方法的數(shù)據(jù)處理系統(tǒng)。
      本發(fā)明還涉及計(jì)算機(jī)程序,包括當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí),用于執(zhí)行上面描述的和在下面提到的方法的所有的步驟的程序代碼裝置。
      本發(fā)明還涉及計(jì)算機(jī)程序產(chǎn)品,包括當(dāng)所述程序產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí),用于執(zhí)行上面描述的和在下面提到的方法的、被存儲(chǔ)在計(jì)算機(jī)可讀的媒體上的程序代碼裝置。
      下面結(jié)合優(yōu)選實(shí)施例和參照附圖更加充分地說(shuō)明本發(fā)明,其中


      圖1a-e顯示按照本發(fā)明的實(shí)施例的構(gòu)建單元的表示的立體圖;圖2a-d顯示構(gòu)建單元和它們的連接單元的例子;圖3顯示構(gòu)建塊和它的兩個(gè)相應(yīng)的連接網(wǎng)格的立體圖;圖4顯示圖3的構(gòu)建塊的頂視圖;圖5a-b顯示每個(gè)表示構(gòu)建單元的表面的連接點(diǎn)的數(shù)據(jù)結(jié)構(gòu);圖6顯示在邊緣到邊緣擴(kuò)展中的兩個(gè)構(gòu)建單元的頂視圖;圖7顯示包括兩個(gè)連接的構(gòu)建單元組的構(gòu)建單元的立體圖;以及圖8顯示在生成幾何對(duì)象的計(jì)算機(jī)可讀的模型的方法內(nèi)的放置構(gòu)建單元的方法的流程圖;圖9顯示按照本發(fā)明的實(shí)施例的連接數(shù)字構(gòu)建單元到另一個(gè)數(shù)字構(gòu)建單元的過(guò)程的流程圖;圖10顯示更新表示連接構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)的子過(guò)程的流程圖;圖11顯示按照本發(fā)明的實(shí)施例的用于生成幾何對(duì)象的計(jì)算機(jī)可讀的模型的數(shù)據(jù)處理系統(tǒng);以及圖12a-b顯示具有傾斜面的構(gòu)建塊和相應(yīng)的邊界體積的例子的側(cè)視圖。
      具體實(shí)施例方式
      圖1a-e顯示按照本發(fā)明的實(shí)施例的構(gòu)建單元的表示的立體圖。
      圖1a顯示構(gòu)建單元101的表示。構(gòu)建單元101是在它的一個(gè)面103上具有可被連接到另一個(gè)構(gòu)建塊的相應(yīng)的孔的兩個(gè)旋鈕102的實(shí)際構(gòu)建塊的數(shù)字表示。構(gòu)建塊還包括從構(gòu)建塊的面105穿透構(gòu)建塊一直到相對(duì)的面的孔104。該孔適合于接納其它構(gòu)建塊的相應(yīng)的連接器。
      構(gòu)建塊101的數(shù)字表示包括由圖1a的粗實(shí)線表示的邊界的體積106。邊界體積106是構(gòu)建塊101包括旋鈕102在內(nèi)的邊界體積。構(gòu)建塊的數(shù)字表示另外是相對(duì)于內(nèi)部右手坐標(biāo)系統(tǒng)107描述的??梢钥吹剑鴺?biāo)系統(tǒng)的選擇,特別是它的原點(diǎn)的位置和軸的方向可以按照任何適當(dāng)?shù)膽T例被選擇。因此,在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,構(gòu)建塊的位置和方向可以由坐標(biāo)系統(tǒng)107相對(duì)于外部坐標(biāo)系統(tǒng)的原點(diǎn)的坐標(biāo)和軸的方向表示,例如,另一個(gè)構(gòu)建塊的坐標(biāo)系統(tǒng)或全”世界”坐標(biāo)系統(tǒng)。
      邊界體積可以在相對(duì)于坐標(biāo)系統(tǒng)107的數(shù)據(jù)結(jié)構(gòu)中被表示,例如,通過(guò)相對(duì)于坐標(biāo)系統(tǒng)107的兩個(gè)角的110的坐標(biāo)被表示。
      圖1b顯示具有邊界體積108的構(gòu)建塊101的表示,它包括不帶有旋鈕102的構(gòu)建塊。在一個(gè)實(shí)施例中,在不同的構(gòu)建塊之間的沖突的檢測(cè)依賴(lài)于邊界體積的類(lèi)型,即,圖1a所示的邊界體積106與圖1b所示的邊界體積108。
      按照本發(fā)明,構(gòu)建塊可以沿著它被連接到另一個(gè)構(gòu)建塊的每個(gè)面被劃分成方形,連接點(diǎn)在每個(gè)方形的中心處,即,方形的邊緣相應(yīng)于在相鄰的連接點(diǎn)之間的一半距離。
      圖1c顯示構(gòu)建塊101,以及顯示在構(gòu)建塊的一個(gè)面上的連接單元的表示。該表示表示在包括兩個(gè)旋鈕102的構(gòu)建塊的面103上的方形網(wǎng)格。方形網(wǎng)格包括多個(gè)方形,每個(gè)以網(wǎng)格點(diǎn)作為中心,正如方形130和網(wǎng)格點(diǎn)111示例地表示的。每個(gè)網(wǎng)格點(diǎn)具有相關(guān)的方向,例如由網(wǎng)格點(diǎn)111的箭頭112的箭頭所示。網(wǎng)格109的網(wǎng)格點(diǎn)的方向指向外面,即,坐標(biāo)系統(tǒng)107的y軸的方向。因此,在數(shù)據(jù)結(jié)構(gòu)中,網(wǎng)格109的表示可包括預(yù)定的網(wǎng)格點(diǎn)--例如網(wǎng)格點(diǎn)113--相對(duì)于坐標(biāo)系統(tǒng)107的坐標(biāo);網(wǎng)格點(diǎn)的方向,即,箭頭114相對(duì)于坐標(biāo)系統(tǒng)的方向;網(wǎng)格尺寸,即,分別在x和y方向上方形的數(shù)目;以及與每個(gè)網(wǎng)格點(diǎn)有關(guān)的屬性。這樣的表示的例子將在后面更詳細(xì)地描述。
      圖1d顯示構(gòu)建塊101的、與面103(圖1d上未示出)相對(duì)的面116的連接點(diǎn)120。構(gòu)建塊的這個(gè)面包括由邊緣118和小的中心旋鈕119,即所謂的輔助管腳,規(guī)定的兩個(gè)孔117。實(shí)際構(gòu)建塊的孔被安排成能夠容納另一個(gè)構(gòu)建塊的旋鈕,諸如旋鈕102,由此共同連接兩個(gè)構(gòu)建塊。按照本發(fā)明,孔是由網(wǎng)格120的相應(yīng)的網(wǎng)格點(diǎn)表示,如由箭頭121表示。
      應(yīng)當(dāng)指出,按照本實(shí)施例,坐標(biāo)系統(tǒng)的原點(diǎn)相應(yīng)于網(wǎng)格點(diǎn)122。
      圖1e顯示包括孔的構(gòu)建塊101的面105的連接網(wǎng)格123。相應(yīng)地,網(wǎng)格點(diǎn)124表示孔104的連接性質(zhì)。
      可以看到,當(dāng)在顯示器上,例如在計(jì)算機(jī)屏幕上,圖形地表示構(gòu)建塊時(shí),邊界體積、坐標(biāo)系統(tǒng)和網(wǎng)格不需要被顯示。優(yōu)選地,圖形表示只包括構(gòu)建塊本身的呈現(xiàn)。
      圖2a-c顯示構(gòu)建單元和它們的連接單元的例子。
      圖2a顯示兩個(gè)構(gòu)建塊201和202。構(gòu)建塊201是在它的頂面上具有四個(gè)旋鈕203和在它的底面(未示)上具有四個(gè)相應(yīng)的孔的磚。磚202是具有包括不互相正交的面的表面的構(gòu)建塊的例子。具體地,構(gòu)建塊202具有傾斜的面204。如圖2a所示,在它們的當(dāng)前的位置上,構(gòu)建塊201和202不連接。
      圖2b顯示具有非矩形的頂面和底面的構(gòu)建塊210。底面包括孔211,212,和213,用于接納一個(gè)或多個(gè)其它構(gòu)建塊的相應(yīng)的旋鈕。這些孔由邊緣214、輔助管腳215、以及頂角216和217規(guī)定。因此,所有的以上的單元的性質(zhì)確定構(gòu)建塊的這個(gè)面的連接性質(zhì)。
      圖2c顯示與構(gòu)建塊221相連接,由此形成組合的構(gòu)建塊的構(gòu)建塊220。構(gòu)建塊220包括在它的頂面上的旋鈕222,它們是裝配于另一個(gè)構(gòu)建塊的相應(yīng)的孔的連接器。然而,如圖2c所示,其它連接類(lèi)型也可以實(shí)現(xiàn)在旋鈕之間的間隙223用作為用于其它連接器的接納器,諸如方塊221的側(cè)面224。對(duì)于實(shí)際的構(gòu)建塊,這個(gè)性質(zhì)由間隙的尺寸和構(gòu)建塊221的尺寸,即,由它的側(cè)面的寬度225決定。在按照本發(fā)明的數(shù)字表示中,這些性質(zhì)由連接點(diǎn)的相應(yīng)的屬性表示,正如下面更詳細(xì)地說(shuō)明的。
      圖2d顯示構(gòu)建塊與包括多個(gè)磚的另一個(gè)構(gòu)建塊的無(wú)效的連接。構(gòu)建塊231包括磚232,233,234,235,236和237。每個(gè)構(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)的連接點(diǎn)不形成常規(guī)的網(wǎng)格。因此,如果構(gòu)建塊試圖被放置在由其連接點(diǎn)由交叉242,243和244表示的點(diǎn)線241表示的位置,有效的連接是不可能的。下面將描述按照本發(fā)明的方法如何檢測(cè)這種情形。
      圖3顯示構(gòu)建塊和它的相應(yīng)的連接網(wǎng)格的立體圖。構(gòu)建塊301具有帶有8個(gè)旋鈕303a-h的頂面302、帶有相應(yīng)的孔的底面和側(cè)面304。在圖3上,分別顯示頂面和底面的連接網(wǎng)格305和306。連接點(diǎn)307由圓圈顯示,如由圓圈307a-k示例地表示的。因此,連接點(diǎn)307a-h分別相應(yīng)于旋鈕303a-h。因?yàn)閭?cè)面304沒(méi)有任何連接單元,對(duì)于它們不需要規(guī)定連接網(wǎng)格。在替換實(shí)施例中,對(duì)于側(cè)面可以規(guī)定只包括空白的接納器的連接網(wǎng)格。
      正如可以從圖3看到的,由被放置在常規(guī)的網(wǎng)格中的連接點(diǎn)表示構(gòu)建塊的連接單元,對(duì)于連接單元在實(shí)際的構(gòu)建塊上的實(shí)際放置施加一定的限制條件。
      網(wǎng)格305位于其上伸出旋鈕303的、構(gòu)建塊的頂面上。
      在圖3的例子中,網(wǎng)格點(diǎn)被放置在方形網(wǎng)格中,其中每個(gè)方形具有任意長(zhǎng)度單位(LU)的5×5單位的尺寸。因此,在這種幾何圖形中,連接單元也被放置在相應(yīng)的方形網(wǎng)格,以及在構(gòu)建塊的面上的連接單元之間的距離是10LU的倍數(shù)。在圖3的例子中,構(gòu)建塊的上表面和下表面是矩形,以及具有20LU×40LU的尺寸,相鄰的連接單元互相間隔開(kāi)10LU。
      另一方面,在垂直方向上,連接單元互相間隔開(kāi)12LU。因此,不同的尺寸的網(wǎng)格尺寸可以變化,由此潛在地造成以上如圖2d所示的情形。
      連接點(diǎn)的位置相對(duì)于構(gòu)建塊的內(nèi)部坐標(biāo)系統(tǒng)308被規(guī)定。
      圖4顯示圖3的構(gòu)建塊的頂視圖。連接網(wǎng)格305被顯示為包括網(wǎng)格點(diǎn)。在圖3的例子中網(wǎng)格點(diǎn)的方向指向圖面的外面。
      在一個(gè)實(shí)施例中,表示連接點(diǎn)的網(wǎng)格的數(shù)據(jù)結(jié)構(gòu),對(duì)于連接點(diǎn),包括連接點(diǎn)相對(duì)于坐標(biāo)系統(tǒng)308的坐標(biāo)、連接單元的方向、以及連接類(lèi)型。
      當(dāng)設(shè)計(jì)新的構(gòu)建塊時(shí),需要生成構(gòu)建塊的數(shù)字表示。圖4的例子中的磚具有在頂面上的45個(gè)連接點(diǎn)和在底面上的45個(gè)連接點(diǎn)。對(duì)于每個(gè)連接點(diǎn)規(guī)定以上的數(shù)值是費(fèi)時(shí)和易出錯(cuò)的任務(wù)。
      然而,對(duì)于許多類(lèi)型的構(gòu)建塊,連接點(diǎn)位于矩形結(jié)構(gòu),由此允許和有利的自動(dòng)化數(shù)據(jù)生成。在圖4的例子中,連接點(diǎn)的坐標(biāo)可以迭代地確定,以及連接單元的方向?qū)τ诰W(wǎng)格的所有的連接點(diǎn)相同的。
      因此,在優(yōu)選實(shí)施例中,表示連接點(diǎn)的網(wǎng)格的數(shù)據(jù)結(jié)構(gòu)包括-網(wǎng)格點(diǎn)401相對(duì)于坐標(biāo)系統(tǒng)308的坐標(biāo)。因此,在圖4的例子中,網(wǎng)格點(diǎn)401的以LU計(jì)的坐標(biāo)是P0=(-5,12,-15)。
      -連接單元的方向,即,在圖4的例子中的(0,1,0)的方向,即,坐標(biāo)系統(tǒng)308的y軸的方向。
      -在x和z方向上網(wǎng)格點(diǎn)的數(shù)目,即,在圖4的例子中,分別為nx=9和nz=5。
      -5×9陣列的數(shù)據(jù)結(jié)構(gòu),每個(gè)包括相應(yīng)的連接點(diǎn)的連接質(zhì)。這樣的陣列的例子將在下面描述。
      在圖4的例子中,每個(gè)連接點(diǎn)可以表示為P0+(5i,0.5j),對(duì)于i=0,...,4;j=0,...,8(以LU計(jì))。
      連接點(diǎn)的性質(zhì)然后可被表示為以i和j為索引的二維陣列C,其中C
      相應(yīng)于連接點(diǎn)401以及C[I,j]相應(yīng)于具有坐標(biāo)P0+(5i,0.5j)的連接點(diǎn)。
      在另一個(gè)實(shí)施例中,可以規(guī)定在連接網(wǎng)格的面上的二維坐標(biāo)系統(tǒng)。在圖4上,這是用坐標(biāo)系統(tǒng)402表示的。二維坐標(biāo)系統(tǒng)然后可以由它的原點(diǎn)401坐標(biāo)和相對(duì)于構(gòu)建塊的內(nèi)部坐標(biāo)系統(tǒng)的旋轉(zhuǎn)矩陣表示。
      圖5a-b顯示按照本發(fā)明的表示連接點(diǎn)的數(shù)據(jù)結(jié)構(gòu)的例子。
      圖5a顯示表示圖4的構(gòu)建塊的頂面網(wǎng)格的連接點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)相應(yīng)于如上所述的二維陣列C[i,j]。每個(gè)陣列單元相應(yīng)于連接類(lèi)型。例如,旋鈕(例如圖4的旋鈕303)被表示為C[I,j]=K,在兩個(gè)旋鈕之間的間隙(例如圖4的間隙404)被稱(chēng)為”雙邊緣間隙”以及被表示為C[I,j]=2EG,在四個(gè)旋鈕的中心處的間隙(例如圖4的間隙405)被稱(chēng)為”管道間隙”以及被表示為C[I,j]=TG。旋鈕是可以由另一個(gè)構(gòu)建塊的接納器接納的,例如由如圖2b所示的孔212接納的連接器。邊緣的接納器,該邊緣如圖2c所示成圖2b所示的邊緣211所示。邊緣間隙是可以接納其它邊緣的接納器,該邊緣如圖2c所示或圖2b所示的邊緣211所示。管道間隙是可接納例如適當(dāng)?shù)某叽绲男o或管道的其它連接器的接納器。
      在構(gòu)建塊的邊界上,發(fā)生其它連接類(lèi)型。頂角(例如圖4的頂角401)被表示為C[I,j]=1/4TG,因?yàn)樗鼈兿鄳?yīng)于只具有四個(gè)相鄰者中的一個(gè)的管道間隙。類(lèi)似地,C[I,j]=1/2TG表示具有圍繞它的四個(gè)旋鈕中的兩個(gè)旋鈕的管道間隙,例如圖4的連接點(diǎn)406。最后,C[I,j]=EG相應(yīng)于只具有一個(gè)相鄰的旋鈕的邊緣間隙,例如圖4的連接點(diǎn)407。
      可以看到,如圖4所示的、但具有不同的數(shù)目的旋鈕的構(gòu)建塊相應(yīng)于類(lèi)似于圖5a所示的連接陣列。因此,表示這種類(lèi)型的構(gòu)建塊的數(shù)據(jù)結(jié)構(gòu)可以通過(guò)規(guī)定構(gòu)建塊的尺寸而自動(dòng)生成。
      可以看到,通常,對(duì)于具有規(guī)則幾何形狀的構(gòu)建單元,可以規(guī)定多個(gè)不同的類(lèi)型的連接陣列,例如,如圖3的構(gòu)建塊的規(guī)則構(gòu)建塊的頂面、側(cè)面和底面的陣列類(lèi)型。這些陣列類(lèi)型的例子然后可以對(duì)于類(lèi)似的構(gòu)建單元的各種各樣不同的類(lèi)型和尺寸被自動(dòng)生成。因此,優(yōu)點(diǎn)是表示大量構(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上的連接類(lèi)型是由指示連接單元的實(shí)際的物理功能的記憶法表示,連接類(lèi)型可以由任何其它適當(dāng)?shù)姆椒ǎ缤ㄟ^(guò)枚舉連接類(lèi)型、比特編碼法等被編碼。
      通常,連接類(lèi)型可包括連接類(lèi)別和參數(shù)。例如,連接類(lèi)別管道間隙αTG,α=1/4,1/2,3/4,1。
      不同的連接類(lèi)型的連接質(zhì)在相應(yīng)的連接表中被規(guī)定。連接表表示對(duì)于每對(duì)連接類(lèi)型的連接性質(zhì)。優(yōu)選地,連接表作為查找表被存儲(chǔ)在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。這樣的連接表的實(shí)施例被顯示于表1。

      表1.
      因此,表1中每個(gè)域表示相應(yīng)的兩個(gè)連接類(lèi)型的連接。
      表1的縮略的連接類(lèi)型是K旋鈕,例如在圖1a-e上的旋鈕102,即,圓形單元。
      SP輔助管腳,例如在圖2b上的輔助管腳215,即,小旋鈕。
      E邊緣,例如在圖2b上的邊緣214,即,單元的外邊緣。
      αEC具有參數(shù)α的邊緣頂角。3/4EC相應(yīng)于如圖2b的頂角216表示的頂角。
      VC未占用的連接器,即,既不排斥大多數(shù)其它單元也不與另一個(gè)單元連接的構(gòu)建塊的部分,例如,光滑面。未占用的連接器排斥旋鈕,但不與任何其它接納器或連接器交互。
      αAK具有參數(shù)α的反旋鈕,例如,圖2b上的反旋鈕215,即,旋鈕裝配進(jìn)的不規(guī)則形孔。
      αTG具有參數(shù)α的管道間隙。例如,圖4顯示具有α=1的管道間隙405,即,在四個(gè)相鄰的旋鈕之間的其中可裝配進(jìn)管道的區(qū)域。
      αEG具有參數(shù)α的邊緣間隙,例如,具有參數(shù)α=2的雙邊緣間隙和具有參數(shù)α=1的邊緣間隙407,即,在兩個(gè)相鄰的旋鈕之間的、或在旋鈕與邊緣之間的間隙。
      VR未占用的接納器,即,既不排斥也不連接到任何其它單元的構(gòu)建塊的部分。
      Tu管道,可以是用于旋鈕的接納器和可以是可被夾在四個(gè)相鄰的旋鈕之間,即,被夾入管道間隙的連接器的圓管道。
      在表1上,以上連接類(lèi)型的連接被表示為如下-T真實(shí),即,連接是有效的,以及相應(yīng)的連接單元進(jìn)行連接兩個(gè)構(gòu)建塊。
      -F錯(cuò)誤,即,在這種位置,連接是不允許的。
      -V未占用的或無(wú)關(guān)緊要的,即,沒(méi)有東西阻止連接,但實(shí)際上也沒(méi)有連接到任何東西。
      例如,按照表1,雙邊緣間隙(具有α=2的αEG)產(chǎn)生具有邊緣(E)的未占用的連接,而邊緣間隙,即,具有α=1的αEG實(shí)際上與邊緣(E)連接,即,在這種情形下的連接是真實(shí)(T)。
      應(yīng)當(dāng)指出,表1的連接表是沿對(duì)角線對(duì)稱(chēng)的。
      還應(yīng)當(dāng)指出,通過(guò)對(duì)具有新的連接類(lèi)型與各個(gè)現(xiàn)有的連接類(lèi)型的相應(yīng)的連接的相應(yīng)的行和列相加,以上的表可以容易地?cái)U(kuò)展成包括新的連接類(lèi)型。
      圖6顯示在邊緣到邊緣擴(kuò)展中的兩個(gè)構(gòu)建單元的頂視圖。在圖6的例子中,兩個(gè)構(gòu)建塊601和602被放置在邊緣到邊緣擴(kuò)展中,即,它們的頂面被放置在同一個(gè)平面,以及它們的各個(gè)連接點(diǎn)的子組一致,如虛線603表示的。在圖6的例子中,假設(shè)每個(gè)構(gòu)建塊601和602是如圖3和4所示的類(lèi)型。
      通過(guò)把兩個(gè)構(gòu)建塊放置在邊緣到邊緣擴(kuò)展中,在區(qū)域603中重疊的連接點(diǎn)的有效的連接類(lèi)型被改變。例如,連接點(diǎn)605相應(yīng)于構(gòu)建塊601的類(lèi)型1/4TG和構(gòu)建塊602的類(lèi)型1/2TG的連接點(diǎn)。然而,當(dāng)被放置在圖6的邊緣到邊緣擴(kuò)展時(shí),組合的連接點(diǎn)605是3/4TG類(lèi)型。類(lèi)似地,連接點(diǎn)606是每個(gè)構(gòu)建塊601和602的類(lèi)型EG,而它是組合的構(gòu)建塊中的類(lèi)型2EG。最后,連接點(diǎn)607是每個(gè)構(gòu)建塊601和602的類(lèi)型1/2TG,而它是組合的構(gòu)建塊中的類(lèi)型TG。
      因此,通常,連接單元的連接性質(zhì)可以取決于相應(yīng)的構(gòu)建單元相對(duì)于其它構(gòu)建單元的放置而改變。
      按照本發(fā)明,這種情形可以通過(guò)規(guī)定描述重疊的連接點(diǎn)的組合的或最終得到的連接類(lèi)型的連接表而被建模。表2是表示以上引入的連接類(lèi)型的組合的這樣的組合表的例子。優(yōu)選地,組合表作為查找表被存儲(chǔ)在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。

      表2.
      在表2上,每個(gè)域包括組合的連接類(lèi)型。如果兩個(gè)連接類(lèi)型的組合不產(chǎn)生連接到任何其它連接類(lèi)型的連接類(lèi)型,則表的項(xiàng)目是F。
      例如,當(dāng)邊緣間隙(βEG)被放置在未占用的連接器(VC)的下一個(gè),例如空的表面時(shí),最終得到的連接單元可被看作為更寬的間隙。在表2中,這用(β+1)EG近似。
      還可以看到,以上的組合表也可以被使用來(lái)在兩個(gè)以上的連接單元,例如三個(gè)或四個(gè)構(gòu)建塊的頂角,要被組合的情形下,確定最終得到的連接類(lèi)型。在這種情形下,可以通過(guò)首先確定對(duì)于兩個(gè)組合的連接單元的第一最終得到的連接類(lèi)型,隨后確定對(duì)于第一最終得到的連接類(lèi)型與第三連接單元的連接類(lèi)型的組合的第二最終得到的連接類(lèi)型,而確定對(duì)于例如三連接單元的最終得到的連接類(lèi)型。
      還應(yīng)當(dāng)指出,通過(guò)將相應(yīng)的行和列與由將新的連接類(lèi)型與各個(gè)現(xiàn)有的連接類(lèi)型相組合而得到的相應(yīng)的最終得到的連接類(lèi)型相加,以上的表可以容易地?cái)U(kuò)展成包括新的連接類(lèi)型。
      因此,在上面,公開(kāi)了用于構(gòu)建塊的連接性質(zhì)的有效的和可擴(kuò)展的表示的數(shù)據(jù)結(jié)構(gòu)以及用于有關(guān)如何組合連接類(lèi)型的法則的有效的和可擴(kuò)展的表示的數(shù)據(jù)結(jié)構(gòu)。
      圖7顯示包括兩個(gè)連接的組的構(gòu)建塊的幾何對(duì)象的立體圖。幾何對(duì)象包括五個(gè)單元701,702,703,704,和705。在圖7的例子中,幾何對(duì)象包括兩組構(gòu)建塊第一組構(gòu)建塊包括構(gòu)建塊701,702,和703,而第二組構(gòu)建塊包括構(gòu)建塊704和705。在本例中的構(gòu)建塊701和704例如通過(guò)單個(gè)旋鈕--上述的反旋鈕連接旋轉(zhuǎn)連接,或通過(guò)不阻止構(gòu)建塊彼此相對(duì)旋轉(zhuǎn)的任何其它連接方式,例如鉸鏈連接、在公共線上的兩個(gè)或多個(gè)旋鈕-反旋鈕連接等等,而被旋轉(zhuǎn)連接。因此,圖7的幾何對(duì)象是不必局限于在幾何對(duì)象內(nèi)給定的位置和方向限制條件的構(gòu)建塊的例子。這樣的連接的其它例子包括在允許連接的構(gòu)建塊的相對(duì)轉(zhuǎn)換的構(gòu)建塊之間的連接。因此,這樣的組的構(gòu)建塊可能需要用分開(kāi)的坐標(biāo)系統(tǒng)進(jìn)行描述,正如由網(wǎng)格系統(tǒng)706和707顯示的。
      圖8顯示作為生成幾何對(duì)象的計(jì)算機(jī)可讀的模型的計(jì)算機(jī)實(shí)施過(guò)程的一部分放置構(gòu)建單元的方法的流程圖。
      在初始步驟801,把構(gòu)建單元放置在預(yù)定的初始位置。構(gòu)建單元由如上所述的數(shù)據(jù)結(jié)構(gòu)表示,以及構(gòu)建單元的位置和方向由描述構(gòu)建單元的內(nèi)部坐標(biāo)系統(tǒng)相對(duì)于適當(dāng)?shù)淖鴺?biāo)系統(tǒng)--例如三維右手”世界”或參考坐標(biāo)系統(tǒng)--的位置和方向的適當(dāng)?shù)淖鴺?biāo)來(lái)描述。
      因此,對(duì)于給定的情境,例如場(chǎng)景、幾何對(duì)象等等,過(guò)程生成和保持一組數(shù)據(jù)結(jié)構(gòu),每個(gè)表示被放置在該情境內(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)建幾何對(duì)象的數(shù)字模型的交互過(guò)程期間由用戶(hù)命令來(lái)引起。例如,計(jì)算機(jī)可以提供用戶(hù)接口,允許用戶(hù)選擇不同的構(gòu)建單元,例如,不同的類(lèi)型、形狀、尺寸、顏色等等的構(gòu)建單元,以及以預(yù)定的位置和方向在計(jì)算機(jī)的顯示器上呈現(xiàn)的三維圖形場(chǎng)景中放置選擇的構(gòu)建單元。例如,用戶(hù)接口可以提供用于放置構(gòu)建單元的推拉操作和用于操控,例如旋轉(zhuǎn)構(gòu)建單元的操作。
      在一個(gè)實(shí)施例中,構(gòu)建單元的放置可能被限制于例如在預(yù)定的網(wǎng)格上離散的位置,例如,在其中所有的距離被測(cè)量為任意長(zhǎng)度單位(LU)的倍數(shù)的系統(tǒng)中,參考網(wǎng)格的網(wǎng)格點(diǎn)可能間隔開(kāi)1LU。
      在步驟802,計(jì)算機(jī)實(shí)施的過(guò)程檢測(cè)在步驟801放置的構(gòu)建單元在何處與已存在于場(chǎng)景中的任何其它構(gòu)建單元--例如先前由用戶(hù)放置的構(gòu)建單元--相交叉。這種沖突檢測(cè)可以通過(guò)適當(dāng)?shù)臎_突檢測(cè)方法被執(zhí)行,優(yōu)選地,通過(guò)基于構(gòu)建單元的邊界體積的沖突檢測(cè)方法被執(zhí)行。這樣的算法的例子例如在David H.Eberly“3D Game EngineDesign(3D游戲機(jī)設(shè)計(jì))”,Morgan Kaujmann,2001中被公開(kāi)。
      沖突檢測(cè)可導(dǎo)致其中放置構(gòu)建單元的位置被另一個(gè)構(gòu)建單元占用。這種情形可以通過(guò)檢測(cè)大于預(yù)定的邊界的邊界體積的交叉而被檢測(cè)。如果檢測(cè)到無(wú)效的交叉,則在這個(gè)位置和方向上構(gòu)建單元的放置可能被拒絕。
      如果沒(méi)有檢測(cè)到無(wú)效的交叉,則在步驟803,過(guò)程測(cè)試新放置的構(gòu)建單元是否與另一個(gè)構(gòu)建單元有效交叉。例如,有效的交叉可被檢測(cè)為各個(gè)邊界體積的小于預(yù)定的邊界的交叉。
      在圖1的實(shí)施例中,構(gòu)建單元的表示包括兩個(gè)邊界體積,一個(gè)邊界體積包括連接單元(圖1a),以及一個(gè)邊界體積包括構(gòu)建單元的本體但不包括連接單元(圖1b)。沖突檢測(cè)步驟可以使用這兩個(gè)邊界體積來(lái)檢測(cè)無(wú)效的沖突,如果沒(méi)有各構(gòu)建單元的連接單元的邊界體積重疊的話。如果包括連接單元的邊界體積重疊,但沒(méi)有連接單元的邊界體積不重疊,或如果任何邊界體積的任何表面交叉,但邊界體積不重疊,則檢測(cè)到有效的重疊。
      進(jìn)一步,檢測(cè)邊界體積是否被定向成使得它們的邊界體積的軸相應(yīng)于同一個(gè)參考坐標(biāo)系統(tǒng)。
      如果沒(méi)有檢測(cè)到有效的沖突,則過(guò)程可以按照任何適當(dāng)?shù)牟呗赃M(jìn)行。在某些實(shí)施例中,把新的構(gòu)建單元放置成未占用,而不連接到任何以前的構(gòu)建單元,可以是可接受的;在某些實(shí)施例中,這只在場(chǎng)景中不存在其它構(gòu)建單元的情形下才可以接受。
      在另外一些實(shí)施例中,這可能被拒絕。例如,在一個(gè)實(shí)施例中,任何不具有用戶(hù)放置的構(gòu)建單元的初始場(chǎng)景可包括缺省構(gòu)建單元,例如,具有連接單元支撐板,用于把構(gòu)建單元放置在底板的頂面。
      如果在步驟803檢測(cè)到在新的放置構(gòu)建單元與一個(gè)或多個(gè)其它構(gòu)建單元之間的有效沖突,過(guò)程在步驟804繼續(xù)進(jìn)行以及檢驗(yàn)新放置的構(gòu)建單元是否有效地被連接到與它有效地交叉的構(gòu)建單元。這個(gè)可連接檢測(cè)子過(guò)程的優(yōu)選實(shí)施例將在下面更詳細(xì)地描述。如果構(gòu)建單元有效地連接到與它交叉的構(gòu)建單元,則連接檢測(cè)導(dǎo)致接受構(gòu)建單元的放置,或如果構(gòu)建單元沒(méi)有有效地連接到任何一個(gè)與它交叉的構(gòu)建單元,則導(dǎo)致拒絕。
      一旦構(gòu)建單元的放置被接受或拒絕,過(guò)程就可通過(guò)用戶(hù)的行動(dòng),例如通過(guò)把被拒絕的構(gòu)建單元重新放置在另一個(gè)位置和/或方向,通過(guò)把另一個(gè)構(gòu)建單元放置在場(chǎng)景等等,而被再次初始化。
      圖9顯示按照本發(fā)明的實(shí)施例的連接第一數(shù)字構(gòu)建單元到另一個(gè)第二數(shù)字構(gòu)建單元的子過(guò)程804的流程圖。例如,第一構(gòu)建單元可以是新放置的磚,以及第二構(gòu)建單元可以是以前構(gòu)建的磚結(jié)構(gòu),其中檢測(cè)算法檢測(cè)在新放置的磚與第二構(gòu)建單元之間的交叉。
      下面,假設(shè)在構(gòu)建單元的初始位置處,構(gòu)建單元被定向成使得它們的邊界體積的主軸相應(yīng)于右手正交世界坐標(biāo)系統(tǒng)的x、y、和z軸。
      在本實(shí)施例中,還假設(shè)對(duì)于連接單元在構(gòu)建單元上的放置施加多個(gè)預(yù)定的法則,雖然連接單元本身在性質(zhì)和形狀上是不同的。
      連接單元的放置的假設(shè)是對(duì)于每個(gè)構(gòu)建單元,在同一個(gè)水平面上所有的連接單元的軸相應(yīng)于在相鄰的分段之間具有固定的距離的正交網(wǎng)格的分段。
      在水平面和垂直面上連接單元的軸之間的距離不需要是相同的。
      在初始步驟902,第一構(gòu)建單元和第二構(gòu)建單元的所有的連接點(diǎn)屬于檢測(cè)的交叉。只有還沒(méi)有被連接的那些連接點(diǎn)需要考慮;這些連接點(diǎn)將被稱(chēng)為相關(guān)的連接點(diǎn)。
      在步驟903,選擇第一構(gòu)建單元的第一相關(guān)連接點(diǎn)。這可以是任意選擇的連接點(diǎn)、由用戶(hù)選擇的連接點(diǎn)等等。
      在步驟904,對(duì)于第一構(gòu)建單元的選擇的連接點(diǎn),過(guò)程檢驗(yàn)是否有與選擇的連接點(diǎn)相同的坐標(biāo)的第二構(gòu)建單元的任何相關(guān)的連接點(diǎn)。在一個(gè)其中構(gòu)建單元被放置在分離的體積參考網(wǎng)格以及所有的坐標(biāo)都是任意長(zhǎng)度單位的倍數(shù)的實(shí)施例中,可能需要精確的坐標(biāo)匹配。在連續(xù)、或準(zhǔn)連續(xù)參考坐標(biāo)系統(tǒng)中,可能要求網(wǎng)格點(diǎn)在預(yù)定的邊界內(nèi)相一致。
      如果沒(méi)有找到這樣的連接點(diǎn),過(guò)程在步驟914繼續(xù)進(jìn)行。
      在步驟914,檢測(cè)在選擇的連接點(diǎn)的預(yù)定的靠近程度內(nèi)是否有任何其它相關(guān)的連接點(diǎn)。在圖9的實(shí)施例中,預(yù)定的靠近程度相應(yīng)于圍繞選擇的連接點(diǎn)(x,y,z)的立方體(x±5LU,y±5LU,z±5LU),因?yàn)樵诒緦?shí)施例中,在兩個(gè)相鄰的連接單元之間的距離是10LU。如果在選擇的連接點(diǎn)的預(yù)定的靠近程度內(nèi)有其它相關(guān)的連接點(diǎn),則兩個(gè)構(gòu)建單元的連接被拒絕(步驟911)以及算法結(jié)束。因此,由于本實(shí)施例中的連接點(diǎn)被放置在規(guī)則的網(wǎng)格,構(gòu)建單元的無(wú)效的放置可被有效地檢測(cè)如果對(duì)于第一構(gòu)建單元的一個(gè)相關(guān)的連接點(diǎn),發(fā)現(xiàn)與第二構(gòu)建單元的相關(guān)的連接點(diǎn)不匹配,則不需要檢驗(yàn)第一構(gòu)建單元的其余的連接單元,由此提高檢測(cè)過(guò)程的速度。以上測(cè)試保證如圖2d所示的連接被拒絕,因?yàn)橄鄳?yīng)于旋鈕239的連接點(diǎn)相對(duì)于規(guī)則網(wǎng)格被誤放置。應(yīng)當(dāng)指出,在圖2的例子中,連接點(diǎn)243不引起沖突,因?yàn)橛捎诟叨壬陷p微的不同,它不屬于邊界體積的交叉,即,磚241與236之間沒(méi)有接觸。
      如果在步驟914沒(méi)有發(fā)現(xiàn)沖突的相關(guān)的連接點(diǎn),則過(guò)程在步驟909繼續(xù)進(jìn)行。
      如果在步驟904發(fā)現(xiàn)匹配的連接點(diǎn),則過(guò)程在步驟905繼續(xù)進(jìn)行,在其中檢測(cè)在選擇的連接點(diǎn)的預(yù)定的靠近程度內(nèi),--在本實(shí)施例中,如上所述,在圍繞選擇的連接點(diǎn)(x,y,z)的立方體(x±5LU,y±5LU,z±5LU)中--是否有任何其它相關(guān)的連接點(diǎn)。如果在預(yù)定的靠近程度中找到另一個(gè)連接點(diǎn),則該位置被拒絕(步驟911)。否則,過(guò)程在步驟906繼續(xù)進(jìn)行。
      在替換實(shí)施例中,以上的限制是不希望的。而且,在又一個(gè)實(shí)施例中,以上的限制可能限于某些連接類(lèi)型,例如,在以上的例子中,不同于”未占用”的所有的連接類(lèi)型。
      在步驟906,過(guò)程檢測(cè)選擇的連接點(diǎn)和檢測(cè)的匹配連接點(diǎn)是否具有相反的方向,即,是否它們相關(guān)的方向是沿公共線、但取不同的方向。因此,只有被以適合于它們接合的相對(duì)方向放置的連接單元才被接受。
      應(yīng)當(dāng)指出,在替換實(shí)施例中,例如通過(guò)在其中連接單元接受一定范圍的方向的實(shí)施例中,接受一定范圍的方向,這個(gè)限制可以放松。
      如果連接點(diǎn)的相對(duì)方向被接受,則過(guò)程在步驟907繼續(xù)進(jìn)行,否則該位置被拒絕(步驟911)。
      在步驟907,通過(guò)從存儲(chǔ)的連接表913,例如按照以上的表1的連接表檢索相應(yīng)的連接類(lèi)型對(duì)的連接法則,而比較選擇的連接點(diǎn)與相應(yīng)的檢測(cè)的匹配連接點(diǎn)的連接類(lèi)型。在本實(shí)施例中,該連接可能為真、假、或未占用,如結(jié)合表1所述的。
      在以后的步驟908,測(cè)試連接結(jié)果是否為“假”,即,在相應(yīng)的連接類(lèi)型之間的有效的連接是否不可能的。如果連接結(jié)果是“假”的,則第一構(gòu)建單元的位置被拒絕(步驟911)。否則,連接結(jié)果被存儲(chǔ)以及過(guò)程在步驟909繼續(xù)進(jìn)行。
      在步驟909,測(cè)試第一構(gòu)建單元的所有的相關(guān)連接點(diǎn)是否被處理。如果沒(méi)有被處理,則選擇還沒(méi)有被處理的相關(guān)的連接點(diǎn)(步驟912)以及通過(guò)對(duì)于新選擇的連接點(diǎn)執(zhí)行以上步驟904,905,906,907和908而處理該連接點(diǎn)。
      如果第一構(gòu)建單元的所有的相關(guān)的連接點(diǎn)都已被處理以及位置未被拒絕,則該位置被接受以及過(guò)程在步驟910繼續(xù)進(jìn)行。在步驟910,根據(jù)存儲(chǔ)的連接結(jié)果,確定構(gòu)建單元如何連接,以及它們的各自的數(shù)據(jù)結(jié)構(gòu)如何隨之被更新。這將結(jié)合圖10更詳細(xì)地描述。一旦數(shù)據(jù)結(jié)構(gòu)被更新,子過(guò)程就終結(jié)和返回到圖8的總的過(guò)程。
      圖10顯示更新表示連接的構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)的子過(guò)程910的實(shí)施例的流程圖。這個(gè)更新基于對(duì)于第一和第二構(gòu)建單元的邊界體積的交叉的相關(guān)的連接點(diǎn)所確定的連接結(jié)果。
      初始地,在步驟1001,檢驗(yàn)所有的連接結(jié)果是否都是”未占用”。如果是的話,即,如果沒(méi)有東西阻止構(gòu)建單元的位置,但實(shí)際上也沒(méi)有連接單元進(jìn)行連接構(gòu)建單元,則新的構(gòu)建單元在它的現(xiàn)在的位置被允許。
      取決于應(yīng)用,第一和第二構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)可被更新。優(yōu)選地,由于構(gòu)建單元實(shí)際上沒(méi)有被連接,第一構(gòu)建單元不應(yīng)當(dāng)與第二連接類(lèi)型相組合成具有組合的邊界體積等等的組合的構(gòu)建單元。
      在一個(gè)實(shí)施例中,附加算法可以根據(jù)邊界體積,判決被放置在這個(gè)位置的實(shí)際的構(gòu)建塊是否下落、傾斜等等以及相應(yīng)地允許還是拒絕該位置。
      否則,即,如果一個(gè)或多個(gè)連接結(jié)果為真,過(guò)程在步驟1002繼續(xù)進(jìn)行,在該步驟,過(guò)程確定構(gòu)建單元如何被連接,即,它們是否剛性地被連接或連接是否允許相對(duì)旋轉(zhuǎn)、轉(zhuǎn)換等等。
      在圖1a-e的實(shí)施例中,如果正好一個(gè)連接結(jié)果為真以及所有其它的未占用,則取決于連接類(lèi)型旋轉(zhuǎn)和/或轉(zhuǎn)換是可能的。而且,如果一個(gè)以上的連接結(jié)果為真以及相應(yīng)的連接點(diǎn)都處在公共線上,則旋轉(zhuǎn)和/或轉(zhuǎn)換是可能的。
      如果檢測(cè)到非剛性的連接,則過(guò)程在步驟1005繼續(xù)進(jìn)行,在該步驟,第一和第二構(gòu)建單元被分配給各個(gè)組,每個(gè)組具有它們的各自的參考坐標(biāo)系統(tǒng)、邊界體積等等,由此允許對(duì)于構(gòu)建單元組的不同的相對(duì)位置和/或方向建模。這樣的情形的例子是以上結(jié)合圖7說(shuō)明的。
      因此,構(gòu)建單元的連接的結(jié)構(gòu)可以通過(guò)包括多個(gè)組的構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)被描述。一個(gè)組是其中所有的構(gòu)建單元被剛性地連接,以使得所有的構(gòu)建單元的所有的連接點(diǎn)是同一個(gè)正交網(wǎng)格的網(wǎng)格點(diǎn)的結(jié)構(gòu)。每個(gè)組的構(gòu)建單元包括一個(gè)或多個(gè)構(gòu)建單元,在其中該組確定公共正交坐標(biāo)系統(tǒng)(網(wǎng)格)、邊界體積、和該組的構(gòu)建單元的連接網(wǎng)格。
      如果在步驟1002檢測(cè)到剛性連接,則過(guò)程在步驟1003繼續(xù)進(jìn)行。正如以上結(jié)合圖6描述的,第一和第二構(gòu)建單元的一個(gè)或多個(gè)連接點(diǎn)由于連接可以改變它們的連接類(lèi)型。因此,在步驟1003,檢測(cè)第一和第二構(gòu)建單元的,具有相同位置和相同方向的那些連接點(diǎn)。對(duì)于那些組合的連接點(diǎn),在存儲(chǔ)的組合表1006中查找最終得到的連接類(lèi)型,如以上結(jié)合表2所描述的。
      最后,在步驟1004,第二構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)用來(lái)自第一構(gòu)建單元的信息被更新,即,第二構(gòu)建單元的邊界體積被更新為第一和第二構(gòu)建單元的邊界體積的聯(lián)合,連接網(wǎng)格被更新為也包括第一構(gòu)建單元的連接點(diǎn)等等。
      通過(guò)重復(fù)圖8、9、和10的過(guò)程,多個(gè)構(gòu)建單元可被組合而形成幾何對(duì)象的數(shù)字模型。因此,以上公開(kāi)了用于生成幾何對(duì)象的數(shù)字模型的方法。
      可以看到,本領(lǐng)域技術(shù)人員可以在本發(fā)明的范圍內(nèi)實(shí)施以上方法的變例。例如,以上步驟的某些步驟的次序可被改變,步驟可被組合等等。
      而且,由于不正確的放置,例如因?yàn)闆](méi)有找到在同一個(gè)位置處的連接點(diǎn)或因?yàn)檫B接點(diǎn)沒(méi)有正好相反的方向,而產(chǎn)生新的連接單元的位置的拒絕可導(dǎo)致進(jìn)一步處理,而不是簡(jiǎn)單的拒絕。在一個(gè)實(shí)施例中,假設(shè)的相鄰的位置或小的移位可被分析,以決定是否可以達(dá)到可接受的位置。這可導(dǎo)致構(gòu)建單元在預(yù)定的邊界內(nèi)快速進(jìn)到提供可接受的位置的、最接近的位置。
      而且,可以施加附加限制或可以釋放其它限制,以便以或多或少的自由度和進(jìn)而或多或少的復(fù)雜性來(lái)提供建模系統(tǒng)。
      當(dāng)構(gòu)建單元例如響應(yīng)于相應(yīng)的用戶(hù)命令從結(jié)構(gòu)中被去除時(shí),它的數(shù)據(jù)結(jié)構(gòu)從組合的數(shù)據(jù)結(jié)構(gòu)中被去除。在一個(gè)實(shí)施例中,這可以通過(guò)重新計(jì)算其余的構(gòu)建單元的組合的數(shù)據(jù)結(jié)構(gòu)而被實(shí)施。
      圖11顯示按照本發(fā)明的實(shí)施例的用于生成幾何對(duì)象的計(jì)算機(jī)可讀的模型的數(shù)據(jù)處理系統(tǒng)。
      表示為1101的計(jì)算機(jī)系統(tǒng)適合于實(shí)現(xiàn)設(shè)計(jì)、存儲(chǔ)、操控、和共享按照本發(fā)明的幾何結(jié)構(gòu)。計(jì)算機(jī)系統(tǒng)1101可被用作為獨(dú)立的系統(tǒng)或作為客戶(hù)機(jī)/服務(wù)器系統(tǒng)中的客戶(hù)機(jī)。計(jì)算機(jī)包括存儲(chǔ)器1102,部分被實(shí)施為易失性和非易失性存儲(chǔ)器裝置,例如硬盤(pán)和隨機(jī)存取存儲(chǔ)器(RAM)。存儲(chǔ)器包括模型代碼解譯器1107、模型代碼生成器1108、UI-事件處理器1109、和由中央處理單元1103可執(zhí)行的建模應(yīng)用1110。另外,存儲(chǔ)器包括模型數(shù)據(jù)1111。
      模型代碼解譯器1107適合于讀出和解譯規(guī)定按照本發(fā)明的模型的代碼,即,表示模型的構(gòu)建單元的數(shù)據(jù)結(jié)構(gòu)的代碼。在優(yōu)選實(shí)施例中,代碼解譯器適合于讀出按照本發(fā)明的模型和把這樣的模型變換成用于在計(jì)算機(jī)顯示器上呈現(xiàn)的已知的圖形格式。根據(jù)以上描述的用于表示對(duì)象的模型的數(shù)據(jù)結(jié)構(gòu),這個(gè)變換可以由本領(lǐng)域技術(shù)人員通過(guò)應(yīng)用在圖形計(jì)算領(lǐng)域內(nèi)公知的圖形原理被實(shí)施。
      UI-事件處理器1109適合于把用戶(hù)與用戶(hù)接口的交互變換成可由模型代碼生成器1108識(shí)別的適當(dāng)?shù)挠脩?hù)命令。可能的和可識(shí)別的命令組可包括例如通過(guò)開(kāi)始旋轉(zhuǎn)等等,從單元庫(kù)中得到構(gòu)建單元、把要被連接的構(gòu)建單元放置在另一個(gè)構(gòu)建單元、斷開(kāi)構(gòu)建單元、丟棄構(gòu)建單元、操控一個(gè)構(gòu)建單元、一組構(gòu)建單元等等。每個(gè)命令可以與一組各個(gè)參數(shù),例如構(gòu)建單元的坐標(biāo)、類(lèi)型等等相關(guān)。
      代碼生成器1108適合于按照上述的本發(fā)明和響應(yīng)于用戶(hù)的命令修正描述實(shí)際的模型的數(shù)據(jù)結(jié)構(gòu)。作為同時(shí)或以后的任務(wù),代碼解譯器可被執(zhí)行,用來(lái)顯示代碼生成器的結(jié)果。
      建模應(yīng)用1110適合于控制存儲(chǔ)器、文件、用戶(hù)接口等等。
      用戶(hù)1105能夠借助于用戶(hù)接口1106與計(jì)算機(jī)系統(tǒng)1101交互。
      為了裝載模型、幾何描述、或其它數(shù)據(jù),計(jì)算機(jī)系統(tǒng)包括輸入/輸出單元(I/O)1104。輸入/輸出單元可被用作為到不同類(lèi)型的存儲(chǔ)媒體和不同類(lèi)型的計(jì)算機(jī)網(wǎng)絡(luò)-例如互連網(wǎng)-的接口。而且,輸入/輸出單元(I/O)1104可被使用于例如交互地與其它用戶(hù)交換模型。
      在存儲(chǔ)器1102、中央處理單元(CPU)1103、用戶(hù)接口(UI)1106、與輸入/輸出單元1104之間的數(shù)據(jù)交換是通過(guò)數(shù)據(jù)總線1112完成的。
      圖12a顯示按照本發(fā)明的第一實(shí)施例的、具有傾斜面和相應(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è)構(gòu)建塊的相應(yīng)的邊界體積的交叉,兩個(gè)構(gòu)建塊就被檢測(cè)為接觸的。邊界體積1202可被使用于可能連接的構(gòu)建塊的初始的有效檢測(cè)??梢钥吹?,構(gòu)建塊202的表示可包括附加邊界體積,諸如包括如結(jié)合圖1a-b描述的連接單元的邊界體積。
      圖12b顯示按照本發(fā)明的第二實(shí)施例的具有傾斜面和相應(yīng)的邊界體積的構(gòu)建塊202的側(cè)視圖。與以上例子一樣,構(gòu)建塊202的表示包括邊界體積分層結(jié)構(gòu)。然而,按照本例,該表示包括具有像階躍函數(shù)那樣形狀的邊界體積1204,而不是具有傾斜面的邊界體積,由此提供傾斜面的近似。
      以上方法和系統(tǒng)可以被應(yīng)用于設(shè)計(jì)物理模型的計(jì)算機(jī)應(yīng)用,例如仿真相應(yīng)的實(shí)際的連接單元組的連接行為的計(jì)算機(jī)應(yīng)用。例如,實(shí)際的玩具構(gòu)建組可通過(guò)所述構(gòu)建組的數(shù)字版本補(bǔ)充,由此允許用戶(hù),例如兒童,來(lái)數(shù)字地設(shè)計(jì)模型,而不用限制可用的構(gòu)建單元的數(shù)目等等,由此提供有趣的播放經(jīng)驗(yàn)。本發(fā)明的優(yōu)點(diǎn)在于,它提供允許對(duì)實(shí)際的構(gòu)建組的甚至更加復(fù)雜的連接性質(zhì)逼真地建模的方法和系統(tǒng)以及同時(shí)提供有效的建模過(guò)程。因此,用戶(hù)經(jīng)受交互的數(shù)字構(gòu)建過(guò)程,而不必等待計(jì)算機(jī)確定建議的構(gòu)建單元的位置是否相應(yīng)于構(gòu)建組的連接法則。
      本方法還可被應(yīng)用來(lái)分析設(shè)計(jì)的模型的特性、生成構(gòu)建指令等等。一般地,本方法可應(yīng)用于計(jì)算機(jī)游戲工業(yè)和其中預(yù)定的3D單元必須按照多個(gè)連接法則被放置在一起的計(jì)算機(jī)圖形學(xué)的所有其它領(lǐng)域。
      權(quán)利要求
      1.一種生成由多個(gè)可互連的構(gòu)建單元構(gòu)建的幾何對(duì)象的計(jì)算機(jī)可讀的模型的方法,其中每個(gè)構(gòu)建單元具有多個(gè)用于將該構(gòu)建單元與另一個(gè)構(gòu)建單元相連接的連接單元,該方法包括把多個(gè)構(gòu)建單元中的第一和第二構(gòu)建單元編碼為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu),每個(gè)數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個(gè)連接單元具有與它有關(guān)的多個(gè)預(yù)定的連接類(lèi)型中的一個(gè)連接類(lèi)型;確定以預(yù)定的互相靠近程度定位的區(qū)域的第一構(gòu)建單元的第一連接單元以及第二構(gòu)建單元的第二連接單元;以及檢索第一和第二連接單元的相應(yīng)的連接類(lèi)型的連接信息,該信息表示第一和第二連接單元是否提供在第一和第二連接單元之間的連接。
      2.按照權(quán)利要求1的方法,其特征在于,該方法還包括提供包括成對(duì)的連接類(lèi)型的連接信息的連接表;以及檢索連接信息的步驟包括從連接表檢索連接信息。
      3.按照權(quán)利要求1或2的方法,其特征在于,該方法還包括-提供包括對(duì)于每個(gè)預(yù)定組的成對(duì)的連接類(lèi)型的最終得到的連接類(lèi)型的組合表;-確定以預(yù)定的相互幾何關(guān)系被放置的第一和第二連接單元;-從組合表檢索第一和第二連接單元的最終得到的連接類(lèi)型;以及-把檢索的最終得到的連接類(lèi)型至少指定給最終得到的連接單元。
      4.按照權(quán)利要求1到3的任一項(xiàng)的方法,其特征在于,各個(gè)數(shù)據(jù)結(jié)構(gòu)的每一個(gè)還表示相對(duì)于相應(yīng)的構(gòu)建單元的多個(gè)網(wǎng)格,每個(gè)網(wǎng)格具有多個(gè)網(wǎng)格點(diǎn);以及構(gòu)建單元的每個(gè)連接單元與一個(gè)網(wǎng)格點(diǎn)相關(guān)以及具有相應(yīng)的連接類(lèi)型。
      5.按照權(quán)利要求4的方法,其特征在于,每個(gè)網(wǎng)格具有至少一個(gè)網(wǎng)格邊緣,以及該方法還包括-提供包括對(duì)于每對(duì)連接類(lèi)型的最終得到的連接類(lèi)型的組合表;-檢測(cè)第一連接單元的第一網(wǎng)格是否被放置在第二連接單元的第二網(wǎng)格的邊緣對(duì)邊緣擴(kuò)展處,第一網(wǎng)格的第一邊緣對(duì)準(zhǔn)第二網(wǎng)格的第二邊緣;-對(duì)于第一網(wǎng)格的第一連接單元,識(shí)別第二網(wǎng)格的相應(yīng)的第二連接單元;-從組合表檢索第一和第二連接單元的組合的最終得到的連接類(lèi)型;以及-把檢索的最終得到的連接類(lèi)型指定給第一和第二連接單元。
      6.按照權(quán)利要求4或5的方法,其特征在于,各個(gè)數(shù)據(jù)結(jié)構(gòu)的每一個(gè)還表示相應(yīng)的構(gòu)建單元的邊界體積;以及每個(gè)網(wǎng)格相應(yīng)于邊界體積的一個(gè)面。
      7.按照權(quán)利要求6的方法,其特征在于,該方法還包括編碼第一和第二構(gòu)建單元相對(duì)于共同的體積參考網(wǎng)格的各自的位置,相應(yīng)的第一和第二構(gòu)建單元的第一和第二網(wǎng)格相應(yīng)于體積參考網(wǎng)格的各自的第一和第二面;第一和第二網(wǎng)格的網(wǎng)格點(diǎn)相應(yīng)于體積參考網(wǎng)格的各自的參考網(wǎng)格點(diǎn);以及檢測(cè)第一和第二網(wǎng)格是否相應(yīng)于體積參考網(wǎng)格的公共面,以及第一網(wǎng)格的至少第一網(wǎng)格點(diǎn)是否位于與第二網(wǎng)格的第二網(wǎng)格點(diǎn)相同的參考網(wǎng)格點(diǎn)。
      8.按照權(quán)利要求7的方法,其特征在于,該方法還包括-識(shí)別第一和第二網(wǎng)格的所有的一致的網(wǎng)格點(diǎn)對(duì);-對(duì)于每個(gè)識(shí)別的網(wǎng)格點(diǎn)對(duì),從連接表檢索連接信息;-如果至少一對(duì)網(wǎng)格點(diǎn)相應(yīng)于無(wú)效的連接,則拒絕在第一和第二構(gòu)建單元之間的連接;否則,如果至少一對(duì)網(wǎng)格點(diǎn)相應(yīng)于有效的連接,則接受在第一和第二構(gòu)建單元之間的連接。
      9.按照權(quán)利要求1到8的任一項(xiàng)的方法,其特征在于,每個(gè)連接單元還具有相關(guān)的方向。
      10.按照權(quán)利要求1到9的任一項(xiàng)的方法,其特征在于,連接信息包括對(duì)于每對(duì)連接類(lèi)型的指示符,表示預(yù)定的連接類(lèi)型組中的一個(gè),該組包括有效連接,其提供相應(yīng)連接單元對(duì)之間的連接;無(wú)效連接,其阻止相應(yīng)的連接單元對(duì)之間的連接;和無(wú)關(guān)緊要的連接。
      11.按照權(quán)利要求1到10的任一項(xiàng)的方法,其特征在于,確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的步驟還包括從預(yù)定的連接單元子組中確定第一和第二連接單元。
      12.按照權(quán)利要求11的方法,其特征在于,各個(gè)數(shù)據(jù)結(jié)構(gòu)的每一個(gè)還表示相應(yīng)的構(gòu)建單元的邊界體積;該方法還包括檢測(cè)第一和第二構(gòu)建單元的邊界體積的交叉;以及從預(yù)定的連接單元子組中確定第一和第二連接單元的步驟包括從被包括在所確定的交叉中的連接單元確定第一和第二連接單元。
      13.一種數(shù)據(jù)處理系統(tǒng),包括用于生成從多個(gè)互連的構(gòu)建單元構(gòu)建的幾何對(duì)象的計(jì)算機(jī)可讀的模型的裝置,其中每個(gè)構(gòu)建單元具有多個(gè)連接單元,用于連接構(gòu)建單元與另一個(gè)構(gòu)建單元;用于編碼多個(gè)構(gòu)建單元中的第一和第二構(gòu)建單元為相應(yīng)的第一和第二數(shù)據(jù)結(jié)構(gòu)的裝置,每個(gè)數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個(gè)連接單元具有與它有聯(lián)系的多個(gè)預(yù)定的連接類(lèi)型之一;用于確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元和第二構(gòu)建單元的第二連接單元的裝置;以及用于檢索表示第一和第二連接單元是否提供在第一和第二構(gòu)建單元之間的連接的、第一和第二連接單元的相應(yīng)的連接類(lèi)型的連接信息的裝置。
      14.按照權(quán)利要求13的數(shù)據(jù)處理系統(tǒng),其特征在于,數(shù)據(jù)處理系統(tǒng)還包括存儲(chǔ)裝置,用于存儲(chǔ)包括連接類(lèi)型對(duì)的連接信息的連接表。
      15.按照權(quán)利要求13或14的數(shù)據(jù)處理系統(tǒng),其特征在于,數(shù)據(jù)處理系統(tǒng)還包括存儲(chǔ)裝置,用于存儲(chǔ)包括對(duì)于每個(gè)預(yù)定組的連接類(lèi)型對(duì)最終得到的連接類(lèi)型的組合表。
      16.一種計(jì)算機(jī)程序,包括當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí)用于執(zhí)行權(quán)利要求1到12的任一項(xiàng)的所有的步驟的程序代碼裝置。
      17.一種計(jì)算機(jī)程序產(chǎn)品,包括當(dāng)所述程序產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí)用于執(zhí)行權(quán)利要求1到12的任一項(xiàng)的方法的被存儲(chǔ)在計(jì)算機(jī)可讀的媒體上的程序代碼裝置。
      全文摘要
      一種生成由多個(gè)可互連的構(gòu)建單元構(gòu)建的幾何對(duì)象的、計(jì)算機(jī)可讀的模型的方法,其中每個(gè)構(gòu)建單元具有多個(gè)用于與將該構(gòu)建單元另一個(gè)構(gòu)建單元相連接的連接單元。該方法包括把多個(gè)構(gòu)建單元的第一和第二構(gòu)建單元編碼為相應(yīng)的數(shù)據(jù)結(jié)構(gòu),每個(gè)數(shù)據(jù)結(jié)構(gòu)表示相應(yīng)的構(gòu)建單元的連接單元,以及每個(gè)連接單元具有與它有關(guān)的預(yù)定的連接類(lèi)型。該方法還包括確定以預(yù)定的互相靠近程度定位的第一構(gòu)建單元的第一連接單元以及第二構(gòu)建單元的第二連接單元;以及檢索第一和第二連接單元的相應(yīng)的連接類(lèi)型的連接信息,該信息表示第一和第二連接單元是否提供在第一和第二構(gòu)建單元之間的連接。
      文檔編號(hào)G06T17/10GK1695170SQ200380100797
      公開(kāi)日2005年11月9日 申請(qǐng)日期2003年10月9日 優(yōu)先權(quán)日2002年10月11日
      發(fā)明者奧爾加·蒂姆森克 申請(qǐng)人:英特萊格公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1