步驟二:分層
如果把模型放在XY平面上,Z軸對(duì)應(yīng)的就是模型高度。我們把XY平面抬高一定高度再與模型的表面相交,就可以得到模型在這個(gè)高度上的切片。
所謂的分層就是每隔一定高度就用一個(gè)XY平面去和模型相交作切片,層與層之間的距離稱為層高。全部層高切完后就可以得到模型在每一個(gè)層上的輪廓線。就像是切土豆片一樣,把一個(gè)圓的或不圓的異或不管什么奇形怪狀的土豆用菜刀一刀一刀切開,最后就能得到一盤薄如紙片的土豆片,當(dāng)然那還得你的刀功要足夠好才行。
分層本質(zhì)上就是一個(gè)把3D模型轉(zhuǎn)化為一系列2D平面的過程,自此之后的所有操作就都是在2D圖形的基礎(chǔ)上進(jìn)行了。
在前面模型載入階段我說(shuō)到了CuraEngine埋了一個(gè)三角形關(guān)聯(lián)的伏筆,作用是什么,現(xiàn)在可以揭曉答案了。我們知道,兩個(gè)平面相交,得到的是一條直線,一個(gè)平面和一個(gè)三角形相交,就得到一條線段。當(dāng)然也有可能什么也得不到,平臺(tái)平行啦,三角形的三個(gè)點(diǎn)都在平面的同一面之類。這些我們可以不管,我們現(xiàn)在只關(guān)心和平面有交集的那些三角形即可。我們把一個(gè)平面和所有的三角形都相交了一遍,得到了許許多多的線段。但是我們需要的是2D圖形,三角形是2D圖形,四邊形,任意多邊形都是2D圖形,而線段不是。所以我們就要把這些線段試著連成一個(gè)多邊形,那么問題來(lái)了,要把這些線段連起來(lái),只能兩個(gè)兩個(gè)地去試,看看它們是不是共端點(diǎn)。
粗算一下,每一層都是平方級(jí)的復(fù)雜度,再算上層數(shù),那就是三次方級(jí)。但現(xiàn)在,我們知道了三角形的關(guān)聯(lián)關(guān)系。兩個(gè)關(guān)聯(lián)的三角形,如果都與一個(gè)平面相交,那它們的交線一定也是關(guān)聯(lián)的。如此一來(lái),每一條線段只需要判斷三個(gè)與它相鄰三角形,看看與這個(gè)平面有沒有交線即可,一下子就把問題的復(fù)雜度降了一個(gè)次元。速度自然可以有質(zhì)的提升。
|
|
你可能喜歡
開源3D建模軟件FreeCAD 1.0正式發(fā)布,支持W
人工智能與3D打印技術(shù)結(jié)合,實(shí)現(xiàn)小型核反應(yīng)
最新《Nature》:動(dòng)態(tài)界面3D打印
石墨烯增強(qiáng)混凝土能否推動(dòng)可持續(xù)建筑? UVA
推薦課程
神奇的3D打印
SLA3D打印工藝全套培訓(xùn)課程 - 軟件篇
3D打印月球燈視頻教程 包括完整貼圖建模流
【原創(chuàng)發(fā)布】Cura軟件修改二次開發(fā)定制視頻