個(gè)柱子的位置后,選擇所有創(chuàng)建的柱子,點(diǎn)擊排序,即可在第一個(gè)到最后一個(gè)柱子之間自動(dòng)計(jì)算每個(gè)柱子的坐標(biāo)位置,并放置柱子。
[0028]調(diào)用createWindow()創(chuàng)建倉(cāng)庫(kù)窗戶(hù),窗戶(hù)組件參數(shù)包括:長(zhǎng)、寬、貼圖;該組件與倉(cāng)庫(kù)墻面組件進(jìn)行關(guān)聯(lián),指定窗戶(hù)組件與墻面組件邊界的距離來(lái)確定窗戶(hù)的位置。通過(guò)組件復(fù)制,在單一墻面創(chuàng)建多個(gè)窗戶(hù),指定第一個(gè)窗戶(hù)和最后一個(gè)窗戶(hù)的位置后,選擇所有創(chuàng)建的窗戶(hù),點(diǎn)擊排序,即可在第一個(gè)到最后一個(gè)窗戶(hù)之間自動(dòng)計(jì)算每個(gè)窗戶(hù)的坐標(biāo)位置,并放置窗戶(hù)。
[0029]調(diào)用createDoorO創(chuàng)建倉(cāng)庫(kù)門(mén),倉(cāng)庫(kù)門(mén)組件參數(shù)包括:長(zhǎng)、寬、貼圖;該組件與倉(cāng)庫(kù)墻面組件進(jìn)行關(guān)聯(lián),指定門(mén)組件與墻面組件邊界的距離來(lái)確定門(mén)的位置。
[0030]調(diào)用createRootO創(chuàng)建倉(cāng)庫(kù)頂部,倉(cāng)庫(kù)頂部組件類(lèi)型包括平頂、尖頂兩種。選擇平頂組件,誰(shuí)知組件參數(shù):貼圖,組件自動(dòng)獲取倉(cāng)庫(kù)頂部坐標(biāo)位置及倉(cāng)庫(kù)的長(zhǎng)寬,創(chuàng)建倉(cāng)庫(kù)平頂;選擇尖頂組件,設(shè)置組件參數(shù):角度、貼圖,然后自動(dòng)獲取倉(cāng)庫(kù)頂部坐標(biāo)位置及倉(cāng)庫(kù)的長(zhǎng)寬,創(chuàng)建倉(cāng)庫(kù)尖頂。創(chuàng)建倉(cāng)庫(kù)尖頂時(shí),自動(dòng)根據(jù)尖頂角度修正倉(cāng)庫(kù)墻面組件與倉(cāng)庫(kù)頂切面的形狀。
[0031 ]這樣就形成了一個(gè)基本的倉(cāng)庫(kù)建筑模型,建筑模型根據(jù)樓層的劃分可選擇某一樓層,獨(dú)立展示該樓層的信息,并可選擇設(shè)計(jì)組件模型進(jìn)行該樓層倉(cāng)庫(kù)的庫(kù)內(nèi)環(huán)境的設(shè)計(jì)。
[0032]設(shè)計(jì)組件模型包括布局、貨架、設(shè)備和監(jiān)管四類(lèi)組件模型。在這四類(lèi)組件中,布局針對(duì)每層樓的地面進(jìn)行設(shè)計(jì),貨架、作業(yè)設(shè)備、監(jiān)管器材可在倉(cāng)庫(kù)環(huán)境中進(jìn)行隨意的擺放,由位置參數(shù)指定組件位置。
[0033]選擇一種布局類(lèi)型組件,組件參數(shù)包括:長(zhǎng)、寬;將組件拖動(dòng)至倉(cāng)庫(kù)地面的某個(gè)區(qū)域,或者通過(guò)該組件與地面邊界距離的指定設(shè)定組件的坐標(biāo)位置,自動(dòng)添加至對(duì)應(yīng)的區(qū)域。
[0034]選擇貨架、設(shè)備、監(jiān)管的一種組件類(lèi)型,組件參數(shù)包括:長(zhǎng)、寬、高。此類(lèi)組件具有邊界吸附功能,可自動(dòng)吸附至環(huán)境設(shè)計(jì)組件的邊界位置。組件位置通過(guò)鼠標(biāo)拖動(dòng)放置。
[0035]環(huán)境設(shè)計(jì)中,對(duì)所有的組件進(jìn)行倉(cāng)庫(kù)內(nèi)部空間的碰撞檢測(cè),所述的碰撞檢測(cè)包括以組件封裝的六面體為基礎(chǔ),實(shí)時(shí)記錄組件模型變換后八個(gè)頂點(diǎn)的坐標(biāo)位置,通過(guò)八個(gè)坐標(biāo)位置形成一個(gè)坐標(biāo)點(diǎn)的閉合區(qū)間,每個(gè)模型組件都有一個(gè)模型的閉合區(qū)間記錄,該閉合區(qū)間的值根據(jù)模型的改變或者位置的移動(dòng)而實(shí)時(shí)更新;
[0036]在組件模型進(jìn)行變化時(shí),實(shí)時(shí)判斷模型的八個(gè)頂點(diǎn)的坐標(biāo)是是否出現(xiàn)在當(dāng)前已經(jīng)創(chuàng)建的其他模型的坐標(biāo)區(qū)間之內(nèi),若在其中則表示該模型與另一模型有模型重疊;
[0037]出現(xiàn)模型重疊時(shí)再判斷該模型的屬性是否與重疊的模型是融合關(guān)系,若是融合關(guān)系,則不進(jìn)行提示;若不是,則提示該模型擺放位置不正確,無(wú)法擺放。
[0038]碰撞檢測(cè)還包括在組件模型定位時(shí),實(shí)時(shí)判斷模型的八個(gè)頂點(diǎn)的坐標(biāo)是是否出現(xiàn)在該樓層的建筑區(qū)域之內(nèi),若在其中則不提示,若不在,則提示該模型擺放位置不正確,無(wú)法擺放。
[0039]所有組件的設(shè)計(jì)均不能超過(guò)該樓層界定的長(zhǎng)、寬、高邊界位置,所有組件模型之間不能有相互覆蓋區(qū)域的存在。
[0040]通過(guò)以上的建筑設(shè)計(jì)和內(nèi)部環(huán)境的設(shè)計(jì)即完成了對(duì)一個(gè)倉(cāng)庫(kù)三維模型的構(gòu)建。
【主權(quán)項(xiàng)】
1.一種基于WebGL的三維倉(cāng)庫(kù)模型建立方法,其特征在于,包括: 利用webGL技術(shù)構(gòu)建基礎(chǔ)應(yīng)用結(jié)構(gòu),創(chuàng)建基礎(chǔ)的多面體,并加載設(shè)置參數(shù); 將背景、相機(jī)、360度的旋轉(zhuǎn)添加至基礎(chǔ)應(yīng)用結(jié)構(gòu)中,創(chuàng)建具有三維坐標(biāo)的場(chǎng)景容器; 結(jié)合倉(cāng)庫(kù)實(shí)際建筑結(jié)構(gòu)創(chuàng)建三維倉(cāng)庫(kù)組件模型,基于基礎(chǔ)的多面體,加載倉(cāng)庫(kù)組件模型;其中,三維倉(cāng)庫(kù)組件模型包括建筑組件模型和設(shè)計(jì)組件模型; 加載建筑組件模型時(shí),通過(guò)模型接口調(diào)用函數(shù)庫(kù)中對(duì)應(yīng)建筑組件的應(yīng)用函數(shù),包括調(diào)用createGround()方法創(chuàng)建倉(cāng)庫(kù)地面,調(diào)用createYt()創(chuàng)建倉(cāng)庫(kù)的月臺(tái),輸入倉(cāng)庫(kù)的層高whhigh及樓層的層數(shù)whf 10r,根據(jù)輸入值,自動(dòng)創(chuàng)建每個(gè)樓層在三維場(chǎng)景中所處的位置,并默認(rèn)添加與底層一致的地面;調(diào)用createWall()創(chuàng)建倉(cāng)庫(kù)墻面,調(diào)用createPillar()創(chuàng)建倉(cāng)庫(kù)柱子,調(diào)用createWindow()創(chuàng)建倉(cāng)庫(kù)窗戶(hù),調(diào)用createDoor()創(chuàng)建倉(cāng)庫(kù)門(mén),調(diào)用CreateR00t()創(chuàng)建倉(cāng)庫(kù)頂部;加載完建筑組件模型,從而形成單樓層或者多樓層的建筑模型; 選擇建筑模型的其中一個(gè)樓層,在該樓層中加載設(shè)計(jì)組件模型,且在加載設(shè)計(jì)組件模型時(shí),對(duì)所有設(shè)計(jì)組件模型進(jìn)行碰撞檢測(cè)。2.根據(jù)權(quán)利要求1所述的基于webGL的三維倉(cāng)庫(kù)模型建立方法,其特征在于,所述的碰撞檢測(cè)包括以組件封裝的六面體為基礎(chǔ),實(shí)時(shí)記錄組件模型變換后八個(gè)頂點(diǎn)的坐標(biāo)位置,通過(guò)八個(gè)坐標(biāo)位置形成一個(gè)坐標(biāo)點(diǎn)的閉合區(qū)間,每個(gè)模型組件都有一個(gè)模型的閉合區(qū)間記錄,該閉合區(qū)間的值根據(jù)模型的改變或者位置的移動(dòng)而實(shí)時(shí)更新; 在組件模型進(jìn)行變化時(shí),實(shí)時(shí)判斷模型的八個(gè)頂點(diǎn)的坐標(biāo)是是否出現(xiàn)在當(dāng)前已經(jīng)創(chuàng)建的其他模型的坐標(biāo)區(qū)間之內(nèi),若在其中則表示該模型與另一模型有模型重疊; 出現(xiàn)模型重疊時(shí)再判斷該模型的屬性是否與重疊的模型是融合關(guān)系,若是融合關(guān)系,則不進(jìn)行提示;若不是,則提示該模型擺放位置不正確,無(wú)法擺放。3.根據(jù)權(quán)利要求2所述的基于webGL的三維倉(cāng)庫(kù)模型建立方法,其特征在于,所述的碰撞檢測(cè)還包括在組件模型定位時(shí),實(shí)時(shí)判斷模型的八個(gè)頂點(diǎn)的坐標(biāo)是是否出現(xiàn)在該樓層的建筑區(qū)域之內(nèi),若在其中則不提示,若不在,則提示該模型擺放位置不正確,無(wú)法擺放。4.根據(jù)權(quán)利要求1所述的基于webGL的三維倉(cāng)庫(kù)模型建立方法,其特征在于,倉(cāng)Il建基礎(chǔ)的多面體時(shí),加載設(shè)置參數(shù),該參數(shù)包括多面體面數(shù),物體的材質(zhì),顏色和/或透明度。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于webGL的三維倉(cāng)庫(kù)模型建立方法,包括利用webGL技術(shù)構(gòu)建基礎(chǔ)應(yīng)用結(jié)構(gòu),創(chuàng)建基礎(chǔ)的多面體,并加載設(shè)置參數(shù);將背景、相機(jī)、360度的旋轉(zhuǎn)添加至基礎(chǔ)應(yīng)用結(jié)構(gòu)中,創(chuàng)建具有三維坐標(biāo)的場(chǎng)景容器;結(jié)合倉(cāng)庫(kù)實(shí)際建筑結(jié)構(gòu)創(chuàng)建三維倉(cāng)庫(kù)組件模型,加載倉(cāng)庫(kù)組件模型;包括建筑組件模型和設(shè)計(jì)組件模型,加載建筑組件模型通過(guò)模型接口調(diào)用函數(shù)庫(kù)中對(duì)應(yīng)建筑組件的應(yīng)用函數(shù),加載建筑組件模型,形成單樓層或者多樓層的建筑模型;選擇建筑模型的其中一個(gè)樓層,在該樓層中加載設(shè)計(jì)組件模型,且在加載設(shè)計(jì)組件模型時(shí),對(duì)所有設(shè)計(jì)組件模型進(jìn)行碰撞檢測(cè)。本發(fā)明的三維倉(cāng)庫(kù)模型建立方法,利用webGL技術(shù),加載建筑組件及設(shè)計(jì)組件,簡(jiǎn)單,快捷且方便。
【IPC分類(lèi)】G06F17/50
【公開(kāi)號(hào)】CN105512364
【申請(qǐng)?zhí)枴緾N201510835046
【發(fā)明人】唐蘇, 姚晴, 鄒曦, 馬俊
【申請(qǐng)人】四川物聯(lián)億達(dá)科技有限公司
【公開(kāi)日】2016年4月20日
【申請(qǐng)日】2015年11月25日