本發(fā)明涉及3d模型設(shè)計(jì)領(lǐng)域,更具體地說,涉及一種基于畫平面多邊形生成吊頂3d模型的系統(tǒng)及方法。
背景技術(shù):
吊頂是整體居室的重要組成部分,因此吊頂?shù)脑O(shè)計(jì)在整個(gè)居室裝飾中占有相當(dāng)重要的地位。當(dāng)前,對(duì)于吊頂?shù)?d設(shè)計(jì)與建模能力一般在3dmax、cad等專業(yè)的3d建模軟件中提供,隨著人們的知識(shí)水平的提升、以及互聯(lián)網(wǎng)信息化的發(fā)展,消費(fèi)者希望通過diy對(duì)自己的房屋進(jìn)行自設(shè)計(jì),為此讓消費(fèi)者去專門學(xué)習(xí)3dmax、cad等專業(yè)的知識(shí),其成本非常高,因此,降低吊頂3d設(shè)計(jì)與建模的操作難度以滿足普通消費(fèi)者的diy訴求將是技術(shù)發(fā)展趨勢(shì)。
現(xiàn)有技術(shù)中多是針對(duì)專業(yè)軟件進(jìn)行相應(yīng)的吊頂設(shè)計(jì)和處理方法,方法復(fù)雜,學(xué)習(xí)難度大,中國(guó)專利申請(qǐng),申請(qǐng)?zhí)?01610633254.6,公開日2016年12月21日,公開了一種基于bim的頂模綜合設(shè)計(jì)及應(yīng)用方法,包括以下步驟:一、根據(jù)建筑結(jié)構(gòu)圖紙?jiān)O(shè)計(jì)頂模系統(tǒng),以標(biāo)準(zhǔn)族庫(kù)為基礎(chǔ)建立頂模三維模型;二、將建立的三維模型導(dǎo)出為指定接口進(jìn)行結(jié)構(gòu)驗(yàn)算并根據(jù)結(jié)果調(diào)整;三、在頂模系統(tǒng)使用過程中分別進(jìn)行自動(dòng)配模設(shè)計(jì)并優(yōu)化、設(shè)計(jì)并全過程模擬頂模與塔吊安裝及拆除、頂模系統(tǒng)照明系統(tǒng)三維設(shè)計(jì)及運(yùn)維、全面檢查安全防護(hù)、系統(tǒng)油電路管線綜合及塔吊與頂模系統(tǒng)爬升規(guī)劃防碰撞設(shè)計(jì)。此發(fā)明提供的基于bim的頂模綜合設(shè)計(jì)方法,使得頂模系統(tǒng)各項(xiàng)設(shè)計(jì)更加可視化、精確化,從直觀層面發(fā)現(xiàn)頂模設(shè)計(jì)過程中存在的問題并及時(shí)調(diào)整,提高了工作效率,減少不必要的損失。但其主要是針對(duì)于頂部設(shè)計(jì)進(jìn)行優(yōu)化和調(diào)整,且專業(yè)度高,不適用于家用。
中國(guó)專利申請(qǐng),申請(qǐng)?zhí)?01210024289.1,公開日2012年7月5日,公開了一種電梯轎廂吊頂?shù)脑O(shè)計(jì)方法,包括以下步驟:(1)繪制轎廂吊頂標(biāo)準(zhǔn)autocad圖樣;(2)插入autocad圖形內(nèi)嵌參數(shù)表格;(3)根據(jù)現(xiàn)有技術(shù)建立數(shù)據(jù)模型;(4)判斷數(shù)據(jù)模型是否正確;(5)變更excel數(shù)據(jù)鏈接表;(6)判斷相關(guān)參數(shù)是否正確;(7)繪制產(chǎn)品的autocad圖樣。利用此發(fā)明設(shè)計(jì)電梯轎廂吊頂,不僅可提高專業(yè)設(shè)計(jì)人員的工作效率,而且可提高數(shù)據(jù)準(zhǔn)確度從而保證產(chǎn)品質(zhì)量的一致性和穩(wěn)定性。此方法也是針對(duì)于專業(yè)設(shè)計(jì)人員設(shè)計(jì),且參數(shù)要求高,自由度小,復(fù)雜度高,效率低。
技術(shù)實(shí)現(xiàn)要素:
1.要解決的技術(shù)問題
針對(duì)現(xiàn)有技術(shù)中存在的現(xiàn)有技術(shù)中所提及的只能在三維模型中對(duì)房頂增加平面、翻轉(zhuǎn)法線、倒角擠出等一系列專業(yè)復(fù)雜的操作才能生成吊頂?shù)?d模型的問題,本發(fā)明提供了一種基于畫平面多邊形生成吊頂3d模型的系統(tǒng)及方法。它可以實(shí)現(xiàn)在二維設(shè)計(jì)平面圖的房頂多邊形中畫一個(gè)或多個(gè)任意多邊形,并直接生成吊頂3d模型。
2.技術(shù)方案
本發(fā)明的目的通過以下技術(shù)方案實(shí)現(xiàn)。
一種基于畫平面多邊形生成吊頂3d模型的系統(tǒng),包括:
建模器:對(duì)房屋進(jìn)行建模;
繪制平面節(jié)點(diǎn)拾取器:負(fù)責(zé)捕獲在畫圖平面中繪制的房頂多邊形各節(jié)點(diǎn)坐標(biāo)和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo);
吊頂3d模型繪制器:對(duì)吊頂進(jìn)行繪制;
房頂燈帶繪制器:對(duì)燈帶進(jìn)行繪制;
建模器從繪制平面節(jié)點(diǎn)拾取器獲取房頂多邊形及吊頂多邊形節(jié)點(diǎn)在繪制平面上的坐標(biāo),吊頂3d模型繪制器和房頂燈帶繪制器從建模器中獲取對(duì)應(yīng)的建模信息,并根據(jù)此建模信息吊頂和燈帶進(jìn)行繪制。
更進(jìn)一步的,所述的建模器包括:
房頂對(duì)象建模器:從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)以及吊頂多邊形節(jié)點(diǎn)坐標(biāo),并將房頂多邊形節(jié)點(diǎn)坐標(biāo)和吊頂多邊形節(jié)點(diǎn)坐標(biāo)分別向房頂平面進(jìn)行投影,對(duì)房頂多邊形節(jié)點(diǎn)和吊頂多邊形節(jié)點(diǎn)在房頂平面的投影坐標(biāo)進(jìn)行記錄;
吊頂對(duì)象建模器:從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)以及吊頂多邊形節(jié)點(diǎn)坐標(biāo),并將房頂多邊形節(jié)點(diǎn)坐標(biāo)和吊頂多邊形節(jié)點(diǎn)坐標(biāo)分別向吊頂平面進(jìn)行投影,對(duì)房頂多邊形節(jié)點(diǎn)和吊頂多邊形節(jié)點(diǎn)在吊頂平觀的投影坐標(biāo)進(jìn)行記錄;
燈帶對(duì)象建模器:負(fù)責(zé)對(duì)燈帶對(duì)象的信息模型進(jìn)行構(gòu)建,燈帶信息模型包括:燈帶寬度,燈帶顏色。
吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取的建模信息包括;房頂多邊形節(jié)點(diǎn)以及吊頂多邊形節(jié)點(diǎn)在吊頂平面上投影的坐標(biāo);
吊頂燈帶繪制器從房頂對(duì)象建模器中獲取的建模信息包括;房頂多邊形節(jié)點(diǎn)以及吊頂多邊形節(jié)點(diǎn)在房頂平面上投影的坐標(biāo);吊頂燈帶繪制器從燈帶對(duì)象建模器中獲取的建模信息包括:燈帶的寬度和顏色;
一種基于畫平面多邊形生成吊頂3d模型的方法,其步驟如下:
步驟1、拾取多邊形節(jié)點(diǎn)坐標(biāo);
步驟2、構(gòu)建信息模型;
步驟3、吊頂3d模型繪制;
步驟4、房頂燈帶著色建模;
其中步驟3以及步驟4無先后順序之分,步驟3在前或步驟4在前或兩者同時(shí)進(jìn)行。
更進(jìn)一步的,步驟1中拾取多邊形節(jié)點(diǎn)坐標(biāo)時(shí)使用繪制平面節(jié)點(diǎn)拾取器捕獲在畫圖平面中繪制的房頂多邊形各節(jié)點(diǎn)坐標(biāo)和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo),并按操作順序?qū)ζ溥M(jìn)行記錄。
更進(jìn)一步的,步驟2包括如下步驟:
房頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)以及吊頂多邊形節(jié)點(diǎn)坐標(biāo),并將房頂多邊形節(jié)點(diǎn)坐標(biāo)和吊頂多邊形節(jié)點(diǎn)坐標(biāo)分別向房頂平面進(jìn)行投影,對(duì)房頂多邊形節(jié)點(diǎn)和吊頂多邊形節(jié)點(diǎn)在房頂平面的投影坐標(biāo)為進(jìn)行記錄;
吊頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)以及吊頂多邊形節(jié)點(diǎn)坐標(biāo),并將房頂多邊形節(jié)點(diǎn)坐標(biāo)和吊頂多邊形節(jié)點(diǎn)坐標(biāo)分別向吊頂平面進(jìn)行投影,對(duì)房頂多邊形節(jié)點(diǎn)和吊頂多邊形節(jié)點(diǎn)在吊頂平觀的投影坐標(biāo)為進(jìn)行記錄;
燈帶對(duì)象建模器對(duì)房頂燈帶的寬度以及燈帶顏色進(jìn)行記錄。
更進(jìn)一步的,還包括吊頂對(duì)象建模器對(duì)吊頂厚度進(jìn)行設(shè)置,并由吊頂對(duì)象建模器對(duì)吊頂厚度進(jìn)行記錄;燈帶對(duì)象建模器對(duì)房燈帶的寬度以及燈帶顏色進(jìn)行設(shè)置并記錄。。
更進(jìn)一步的,步驟3中,吊頂3d模型繪制分為平行于地面的吊頂水平面繪制以及垂直于地面的吊頂垂直面繪制兩部分。兩部分協(xié)調(diào)繪制,協(xié)調(diào)性好,錯(cuò)誤率低。
更進(jìn)一步的,平行于地面的吊頂水平面繪制,步驟如下:吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)在吊頂平面上的投影坐標(biāo),以在吊頂平面中分別生成房頂多邊形節(jié)點(diǎn)的投影坐標(biāo)和吊頂多邊形節(jié)點(diǎn)的投影坐標(biāo),然后取房頂多邊形節(jié)點(diǎn)投影坐標(biāo)內(nèi)的每個(gè)像素對(duì)應(yīng)的坐標(biāo),判斷像素對(duì)應(yīng)的坐標(biāo)是否落在吊頂多邊形節(jié)點(diǎn)投影坐標(biāo)內(nèi),如果在內(nèi),則像素對(duì)應(yīng)的坐標(biāo)不被渲染;如果不在內(nèi),則對(duì)像素對(duì)應(yīng)的坐標(biāo)進(jìn)行正常渲染。
更進(jìn)一步的,垂直于地面的吊頂垂直面繪制,步驟如下:吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取吊頂厚度以及吊頂多邊形節(jié)點(diǎn)在吊頂平面的投影坐標(biāo),從吊頂多邊形的投影坐標(biāo)中按邊循環(huán)取對(duì)應(yīng)兩端點(diǎn)的坐標(biāo),并根據(jù)此兩端點(diǎn)的坐標(biāo)分別向垂直于房頂平面方向垂直偏移吊頂厚度,得到偏移后的兩點(diǎn),再根據(jù)偏移前兩端點(diǎn)的坐標(biāo)和偏移后的兩點(diǎn)畫出垂直于地面的吊頂垂直面的3d模型。
更進(jìn)一步的,步驟4中,吊頂3d模型繪制器從房頂對(duì)象建模器中獲取吊頂多邊形節(jié)點(diǎn)以及吊頂多邊形節(jié)點(diǎn)在房頂平面的投影坐標(biāo),并從燈帶對(duì)象建模器中獲取取燈帶寬度以及燈帶顏色,從房頂多邊形節(jié)點(diǎn)的投影坐標(biāo)中取房頂平面內(nèi)的每個(gè)像素對(duì)應(yīng)的節(jié)點(diǎn)坐標(biāo),判斷像素對(duì)應(yīng)的坐標(biāo)是否落在吊頂多邊形節(jié)點(diǎn)的投影坐標(biāo)內(nèi),如在內(nèi),則不對(duì)此像素對(duì)應(yīng)的坐標(biāo)進(jìn)行燈光著色;如不在內(nèi),則再循環(huán)獲取吊頂多邊形節(jié)點(diǎn)坐標(biāo)的每條線段邊,并計(jì)算像素對(duì)應(yīng)的坐標(biāo)到每條線段邊的距離,取最小距離,如果此最小距離小于或等于燈帶寬度,則對(duì)像素對(duì)應(yīng)的坐標(biāo)進(jìn)行燈光著色,否則不對(duì)著進(jìn)行燈光著色,最終在房頂?shù)?d模型的平面上形成各吊頂多邊形對(duì)應(yīng)的燈帶。
3.有益效果
相比于現(xiàn)有技術(shù),本發(fā)明的優(yōu)點(diǎn)在于:
(1)本發(fā)明提供了吊頂對(duì)象建模器和吊頂3d模型繪制器,即發(fā)明了一種通過繪制平面多邊形以自動(dòng)生成吊頂3d模型的方法,解決了現(xiàn)有技術(shù)中生成吊頂3d模型需要一系統(tǒng)專業(yè)復(fù)雜的操作的問題,可以為普通用戶提供吊頂繪制工具,方便簡(jiǎn)單,工作效率高,成本低;
(2)本發(fā)明提供了房頂對(duì)象建模器和燈帶對(duì)象建模器以及房頂燈帶繪制器,即發(fā)明了一種通過繪制平面多邊形以在房頂上自動(dòng)生成燈帶的方法,解決了現(xiàn)有技術(shù)中生成燈帶需要一系統(tǒng)專業(yè)復(fù)雜的操作的問題,燈帶繪制方便,修改容易;
(3)在二維設(shè)計(jì)平面圖的房頂多邊形內(nèi)畫一個(gè)或多個(gè)任意多邊形,并自動(dòng)生成吊頂3d模型以及燈帶的方法,只要用戶會(huì)畫多邊形就可以對(duì)居室吊頂進(jìn)行設(shè)計(jì),大大降低吊頂3d設(shè)計(jì)與建模的操作難度,使得普通用戶對(duì)居室吊頂?shù)膁iy成為可能;
(4)本方案結(jié)合繪制系統(tǒng)使用對(duì)應(yīng)的繪制方法可以快速對(duì)吊頂3d進(jìn)行繪制,效率高,簡(jiǎn)單易學(xué),成本低,易于推廣。
附圖說明
圖1為本發(fā)明的所涉及的繪制平面中的吊頂多邊形示意圖;
圖2為房頂平面和吊頂平面建模示意塊圖;
圖3為系統(tǒng)模塊圖;
圖4為本發(fā)明的算法流程圖。
具體實(shí)施方式
下面結(jié)合說明書附圖和具體的實(shí)施例,對(duì)本發(fā)明作詳細(xì)描述。
實(shí)施例1
本方案涉及在二維設(shè)計(jì)平面圖的房頂多邊形中畫一個(gè)或多個(gè)任意多邊形,并直接生成吊頂3d模型的系統(tǒng)以及方法。
一種基于畫平面多邊形生成吊頂3d模型的系統(tǒng),如圖3所示,包括:
建模器:對(duì)房屋進(jìn)行建模;
繪制平面節(jié)點(diǎn)拾取器:負(fù)責(zé)捕獲在畫圖平面中繪制的房頂多邊形各節(jié)點(diǎn)坐標(biāo)和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo),并按操作順序?qū)ζ溥M(jìn)行記錄;
吊頂3d模型繪制器:根據(jù)吊頂對(duì)象建模器中的房頂多邊形和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo),對(duì)吊頂進(jìn)行繪制;
房頂燈帶繪制器:根據(jù)房頂對(duì)象建模器中的房頂多邊形和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo)以及燈帶對(duì)象建模器中的燈帶信息模型,對(duì)房頂?shù)臒魩нM(jìn)行繪制;
所述的建模器包括:
房頂對(duì)象建模器:負(fù)責(zé)對(duì)繪制平面節(jié)點(diǎn)拾取器中的房頂多邊形和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo)向房頂平面進(jìn)行投影,并分別對(duì)房頂多邊形和吊頂多邊形的各節(jié)點(diǎn)在房頂平面的投影坐標(biāo)進(jìn)行記錄;
吊頂對(duì)象建模器:負(fù)責(zé)對(duì)繪制平面節(jié)點(diǎn)拾取器中的房頂多邊形和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo)向吊頂平面進(jìn)行投影,并分別對(duì)房頂多邊形和吊頂多邊形的各節(jié)點(diǎn)在吊頂平臺(tái)的投影坐標(biāo)進(jìn)行記錄,以及對(duì)吊頂厚度進(jìn)行記錄;
燈帶對(duì)象建模器:負(fù)責(zé)對(duì)燈帶對(duì)象的信息模型進(jìn)行構(gòu)建,燈帶信息模型包括:燈帶寬度,燈帶顏色。
屋頂對(duì)象建模器和房頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器獲取房頂多邊形及吊頂多邊形節(jié)點(diǎn)在繪制平面上的坐標(biāo)。吊頂3d模型繪制器獲取吊頂對(duì)象建模器信息進(jìn)行吊頂繪制,房頂燈帶繪制器獲取房頂對(duì)象建模器和燈帶對(duì)象建模器信息進(jìn)行燈帶繪制。
完成對(duì)整個(gè)吊頂結(jié)構(gòu)和燈帶的3d繪制。
實(shí)施例2
基于畫平面多邊形生成吊頂3d模型的系統(tǒng)的技術(shù)方案的實(shí)現(xiàn)方法,如圖1、2、4,其步驟包括:
步驟1、拾取多邊形節(jié)點(diǎn)坐標(biāo),繪制平面節(jié)點(diǎn)拾取器捕獲在畫圖平面中繪制的房頂多邊形各節(jié)點(diǎn)坐標(biāo)和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo),并按操作順序?qū)ζ溥M(jìn)行記錄,假設(shè)從畫圖平面中被記錄后的房頂多邊形節(jié)點(diǎn)坐標(biāo)為group_draw_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)為group_draw_ceiling;
步驟2、構(gòu)建信息模型。
房頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling,并將房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof和吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling分別向房頂平面進(jìn)行投影,假設(shè)房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof在房頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling在房頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_ceiling,對(duì)投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_roof和多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_ceiling進(jìn)行記錄;
吊頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling,并將房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof和吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling分別向吊頂平面進(jìn)行投影,假設(shè)房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof在吊頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling在吊頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_ceiling,對(duì)投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_roof和多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_ceiling進(jìn)行記錄;對(duì)吊頂厚度進(jìn)行設(shè)置,并由吊頂對(duì)象建模器對(duì)吊頂厚度進(jìn)行記錄;
對(duì)房燈帶的寬度以及燈帶顏色進(jìn)行設(shè)置,并由燈帶對(duì)象建模器對(duì)房燈帶的寬度以及燈帶顏色進(jìn)行記錄;
步驟3、繪制吊頂。吊頂3d模型繪制分為兩部分,即:平行于地面的吊頂水平面繪制以及垂直于地面的吊頂垂直面繪制。
平行于地面的吊頂水平面繪制。吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取在吊頂平面投影后的房頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,然后取房頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_roof內(nèi)的每個(gè)像素對(duì)應(yīng)的坐標(biāo),假設(shè)此像素對(duì)應(yīng)的坐標(biāo)為p,并判斷此像素坐標(biāo)p是否落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,如果像素坐標(biāo)p落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,則像素坐標(biāo)p不被渲染,即作透明處理;如果像素坐標(biāo)p不在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,則對(duì)像素坐標(biāo)p進(jìn)行正常渲染;最終渲染出來的是去除吊頂多邊形的吊頂平面。
垂直于地面的吊頂垂直面繪制。此垂直面在現(xiàn)實(shí)世界中一般用于粘貼石膏線。吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取吊頂厚度對(duì)應(yīng)的坐標(biāo)值以及在吊頂平面投影后的吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,從吊頂多邊形中g(shù)roup_ceiling_ceiling按邊循環(huán)取對(duì)應(yīng)兩端點(diǎn)的坐標(biāo),假設(shè)此兩端點(diǎn)的分別為節(jié)點(diǎn)a、節(jié)點(diǎn)b,并根據(jù)此兩端點(diǎn)坐標(biāo)分別向垂直于房頂平面方向垂直偏移吊頂厚度,節(jié)點(diǎn)坐標(biāo)在某個(gè)方向上以一定距離進(jìn)行偏移的算法在現(xiàn)有技術(shù)中已有公開,此處不再贅述,假設(shè)偏移后的兩點(diǎn)分別為節(jié)點(diǎn)c、節(jié)點(diǎn)d,再根據(jù)節(jié)點(diǎn)a、節(jié)點(diǎn)b、節(jié)點(diǎn)c、節(jié)點(diǎn)d即可畫出垂直于地面的吊頂垂直面的3d模型。
步驟4、房頂燈帶著色建模。房頂3d模型繪制器從房頂對(duì)象建模器中獲取在房頂平面投影后的吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling,并從燈帶對(duì)象建模器中獲取取燈帶寬度以及燈帶顏色,從房頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_roof中取房頂平面內(nèi)的每個(gè)像素對(duì)應(yīng)的節(jié)點(diǎn)坐標(biāo),假設(shè)此像素對(duì)應(yīng)的坐標(biāo)為p,判斷像素坐標(biāo)p的坐標(biāo)是否落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling內(nèi),如果像素坐標(biāo)p的坐標(biāo)是落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling內(nèi),則不對(duì)此像素坐標(biāo)p的坐標(biāo)著進(jìn)行燈光著色;如果像素坐標(biāo)p的坐標(biāo)沒有落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling內(nèi),則再循環(huán)獲取吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling的每條線段邊,并計(jì)算像素坐標(biāo)p到每條線段邊的距離(節(jié)點(diǎn)坐標(biāo)到某線段的距離的算法在現(xiàn)有技術(shù)中已有公開,此處不再贅述),取最小距離,如果此最小距離小于或等于燈帶寬度,則對(duì)像素坐標(biāo)p進(jìn)行燈光著色,否則不對(duì)著進(jìn)行燈光著色。最終會(huì)在房頂?shù)?d模型的平面上形成各吊頂多邊形對(duì)應(yīng)的燈帶。
上述的步驟3與步驟4之間沒有先后順序關(guān)系,即步驟3和步驟4以任何順序皆落在本發(fā)明的范圍內(nèi)。
本發(fā)明主要簡(jiǎn)化了用戶的操作復(fù)雜度,即發(fā)明了一種新的吊頂3d建模方法:在二維設(shè)計(jì)平面圖中畫多邊形后直接生成吊頂3d模型,解決了現(xiàn)有技術(shù)中只能在三維模型中對(duì)房頂增加平面、翻轉(zhuǎn)法線、倒角擠出等一系列專業(yè)復(fù)雜的操作才能生成吊頂?shù)?d模型的問題,這些操作大大增加了操作復(fù)雜度,并增加了學(xué)習(xí)成本;上述方法對(duì)吊頂和燈帶進(jìn)行3d繪制,繪制迅速方便,易于用戶學(xué)習(xí),使用成本低,節(jié)約時(shí)間,易于推廣。
實(shí)施例3
步驟1、拾取多邊形節(jié)點(diǎn)坐標(biāo)。
繪制平面節(jié)點(diǎn)拾取器捕獲在畫圖平面中繪制的房頂多邊形各節(jié)點(diǎn)坐標(biāo)和吊頂多邊形的各節(jié)點(diǎn)坐標(biāo),并按操作順序?qū)ζ溥M(jìn)行記錄,假設(shè)從畫圖平面中被記錄后的房頂多邊形節(jié)點(diǎn)坐標(biāo)為group_draw_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)為group_draw_ceiling;繪制平面節(jié)點(diǎn)拾取器捕獲房頂和吊頂?shù)亩噙呅雾旤c(diǎn)坐標(biāo)的方式可以但不僅限于從計(jì)算機(jī)或移動(dòng)設(shè)備的操作界面上感知獲取或者以文件導(dǎo)入方式獲取,對(duì)頂和吊頂?shù)亩噙呅雾旤c(diǎn)坐標(biāo)的記錄方式可以但不僅限于以數(shù)組或鏈表的緩存方式;
步驟2、構(gòu)建信息模型。
房頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling,并將房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof和吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling分別向房頂平面進(jìn)行投影,假設(shè)房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof在房頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling在房頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_ceiling,對(duì)投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_roof和多邊形節(jié)點(diǎn)坐標(biāo)為group_roof_ceiling進(jìn)行記錄;
吊頂對(duì)象建模器從繪制平面節(jié)點(diǎn)拾取器中獲取房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling,并將房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof和吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling分別向吊頂平面進(jìn)行投影,假設(shè)房頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_roof在吊頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_draw_ceiling在吊頂平面投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_ceiling,對(duì)投影后的多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_roof和多邊形節(jié)點(diǎn)坐標(biāo)為group_ceiling_ceiling進(jìn)行記錄;對(duì)吊頂厚度進(jìn)行設(shè)置,吊頂厚度可以設(shè)置為10厘米,并由吊頂對(duì)象建模器對(duì)吊頂厚度進(jìn)行記錄;
對(duì)房燈帶的寬度以及燈帶顏色進(jìn)行設(shè)置,并由燈帶對(duì)象建模器對(duì)房燈帶的寬度以及燈帶顏色進(jìn)行記錄,房燈帶的寬度可以設(shè)置為20厘米,燈帶顏色可以設(shè)置為淡黃色,顏色可以但不限于使用grba的方式表示;
步驟3、繪制吊頂。吊頂3d模型繪制分為兩部分,即:平行于地面的吊頂水平面繪制以及垂直于地面的吊頂垂直面繪制。
平行于地面的吊頂水平面繪制。吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取在吊頂平面投影后的房頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,然后取房頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_roof內(nèi)的每個(gè)像素對(duì)應(yīng)的坐標(biāo),假設(shè)此像素對(duì)應(yīng)的坐標(biāo)為p,并判斷此像素坐標(biāo)p是否落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,如果像素坐標(biāo)p落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,則像素坐標(biāo)p不被渲染,即作透明處理;如果像素坐標(biāo)p不在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,則對(duì)像素坐標(biāo)p進(jìn)行正常渲染;最終渲染出來的是去除吊頂多邊形的吊頂平面。
垂直于地面的吊頂垂直面繪制。此垂直面在現(xiàn)實(shí)世界中一般用于粘貼石膏線。吊頂3d模型繪制器從吊頂對(duì)象建模器中獲取吊頂厚度對(duì)應(yīng)的坐標(biāo)值以及在吊頂平面投影后的吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_ceiling_ceiling,從吊頂多邊形中g(shù)roup_ceiling_ceiling按邊循環(huán)取對(duì)應(yīng)兩端點(diǎn)的坐標(biāo),假設(shè)此兩端點(diǎn)的分別為節(jié)點(diǎn)a、節(jié)點(diǎn)b,并根據(jù)此兩端點(diǎn)坐標(biāo)分別向垂直于房頂平面方向垂直偏移吊頂厚度,假設(shè)偏移后的兩點(diǎn)分別為節(jié)點(diǎn)c、節(jié)點(diǎn)d,再根據(jù)節(jié)點(diǎn)a、節(jié)點(diǎn)b、節(jié)點(diǎn)c、節(jié)點(diǎn)d即可畫出垂直于地面的吊頂垂直面的3d模型。
步驟4、房頂燈帶著色建模。吊頂3d模型繪制器從房頂對(duì)象建模器中獲取在房頂平面投影后的吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_roof以及吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling,并從燈帶對(duì)象建模器中獲取取燈帶寬度以及燈帶顏色,從房頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_roof中取房頂平面內(nèi)的每個(gè)像素對(duì)應(yīng)的節(jié)點(diǎn)坐標(biāo),假設(shè)此像素對(duì)應(yīng)的坐標(biāo)為p,判斷像素坐標(biāo)p的坐標(biāo)是否落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling內(nèi),如果像素坐標(biāo)p的坐標(biāo)是落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling內(nèi),則不對(duì)此像素坐標(biāo)p的坐標(biāo)著進(jìn)行燈光著色;如果像素坐標(biāo)p的坐標(biāo)沒有落在吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling內(nèi),則再循環(huán)獲取吊頂多邊形節(jié)點(diǎn)坐標(biāo)group_roof_ceiling的每條線段邊,并計(jì)算像素坐標(biāo)p到每條線段邊的距離,取最小距離,如果此最小距離小于或等于燈帶寬度,則對(duì)像素坐標(biāo)p進(jìn)行燈光著色,否則不對(duì)著進(jìn)行燈光著色。最終會(huì)在房頂?shù)?d模型的平面上形成各吊頂多邊形對(duì)應(yīng)的燈帶。
以上示意性地對(duì)本發(fā)明創(chuàng)造及其實(shí)施方式進(jìn)行了描述,該描述沒有限制性,在不背離本發(fā)明的精神或者基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。附圖中所示的也只是本發(fā)明創(chuàng)造的實(shí)施方式之一,實(shí)際的結(jié)構(gòu)并不局限于此,權(quán)利要求中的任何附圖標(biāo)記不應(yīng)限制所涉及的權(quán)利要求。所以,如果本領(lǐng)域的普通技術(shù)人員受其啟示,在不脫離本創(chuàng)造宗旨的情況下,不經(jīng)創(chuàng)造性的設(shè)計(jì)出與該技術(shù)方案相似的結(jié)構(gòu)方式及實(shí)施例,均應(yīng)屬于本專利的保護(hù)范圍。