本發(fā)明屬于地理信息技術領域,特別涉及三維管線建模技術中的圓管三通構建方法。
背景技術:
目前,相比于二維管線,三維管線更能直觀表達管線的空間位置管線,特別是豎向分布,因此三維管線建模技術得到了廣泛的研究,并開展了三維管線應用。
在管線的三維建模中,難點在于管線連通特征的建模。在管線的實際布設中,管線的銜接處通常使用標準的直通、三通等連通構件,,其兩邊之間通常成90度角或180度角,為固定的標準值。但在實際管線測量中,由于精度的原因或者測量綜合取舍時,管線邊之間的角度通常不是標準值,有時離標準值的差值很大,因此給三維管線銜接建模帶來了困難。
技術實現(xiàn)要素:
為了克服上述現(xiàn)有技術中存在的缺陷,本發(fā)明的目的是提供一種圓管三通構建方法,利用本發(fā)明,可以實現(xiàn)不同方向的圓管三通模型的自動構建。
為了實現(xiàn)本發(fā)明的上述目的,本發(fā)明提供了一種圓管三通構建方法,包括以下步驟:
步驟一、設定圓管三通的三個方向、圓管三通中心點SC以及圓管三通各自的截面中心點S1、S2和S3,計算圓管三通的中心軸SCO;
步驟二、根據(jù)中心軸SCO和圓管三通的三個方向,分別計算每個方向的用來擬合斷面圓的正多邊形頂點,即管段SCS1、管段SCS2和管段SCS3的斷面特征點,以及特征點的法線;
步驟三、計算管段SCS1、管段SCS2和管段SCS3的交點,即三通的銜接點,并計算銜接點的法線;
步驟四、組裝,根據(jù)計算出的斷面特征點以及特征點的法線和銜接點以及銜接點的法線,組裝成三通模型。
該圓管三通構建方法核心在于尋找三通管線的中心軸和中心點,利用中心軸求出管口斷面特征點坐標后,基于射線求交得到各管段銜接處的交點坐標,最后構建管線三通。計算方法簡單,通在較短的時間內快速并準確的對圓管三通進行三維建模。
進一步的,本方案還包括第五個步驟、根據(jù)步驟四中組裝得到的三通模型進行圓管三通的生產。
進一步的,所述步驟一包括以下幾個步驟:
根據(jù)點SC、點S1、點S2和點S3是否共面,分為兩種情況:
S1-1,當點SC和點S1、點S2和點S3不共面時,取點S1(x1,y1,z1)、點S2(x2,y2,z2)和點S3(x3,y3,z3)與點SC距離相等,且該距離為SD,得到以下計算公式:
則求得方程一個解為SC,為已知坐標,另一個解為中心軸上另一與點S1(x1,y1,z1)、點S2(x2,y2,z2)和點S3(x3,y3,z3)距離相同且為SD的點O,連接點SC與點O,則得到中心軸SCO;
S1-2,當點SC和點S1、點S2和點S3共面時,取點SC和點S1、點S2和點S3四點所在平面的面法線方向上,距離為管段半徑的兩個點O1、O2為中心點,連接O1、O2構成中心軸O1O2,此時,取點O,令其與點O1重合;因點SC與點O的連線SCO與點O1與點O2的連線O1O2均為圓管三通的中心軸,則點O1、點O2在中心軸SCO上。
該方法針對點SC和點S1、點S2和點S3四點是否共面的情況,詳細分析了兩種情況下中心軸SCO的計算方法,該計算方法簡單,同時能準確快速的計算得到所需要的中心軸SCO。
進一步的,所述步驟二包括以下幾個步驟:
計算管段SCS1的斷面特征點及特征點的法線,具體為:
S2-1,確定旋轉軸S1SC;旋轉面為過點S1,垂直于旋轉軸S1SC的截面SJ1;
S2-2,根據(jù)三通中心軸SCO、管段方向SCS1,管段半徑r,r為三個管段的最大管徑,擬合正多邊形邊數(shù)n,確定起始旋轉點,即斷面第一個特征點a1,計算公式為:
rotateP1為旋轉中心軸矢量,normalize()是將矢量轉化為單位向量,P1為中心軸矢量SCO和旋轉軸矢量S1SC叉乘得到的中間向量,垂直平面S1-SC-O,R(rotateP1,π/2)表示繞rotateP1逆時針旋轉90度,P1StartDrirect為擬合正多邊形頂點初始計算的方向,指向起始旋轉點a1;
S2-3,確定旋轉矩陣R:繞旋轉軸rotateP1逆時針旋轉deltaAngle得到的旋轉矩陣為R(rotateP1,deltaAngle),其中deltaAngle=2*π/n,n為擬合正多邊形邊數(shù);
S2-4,以a1為起始旋轉點,以rotateP1為軸,利用旋轉矩陣R(rotateP1,deltaAngle)計算出擬合正多邊形的所有的點ai(i=1,...,n),同時計算所有特征點的法線,計算公式如下:
ai+1=ai*R(rotateP1,deltaAngle)(i=1,...,n-1);
Ni=ai-S1,Ni.normalize(i=1,...,n),其中,法線方向N為從點S1指向特征點的法線;
同理,求得管段SCS2、管段SCS3的斷面特征點bi(i=1,...,n),ci(i=1,...,n)及其特征點的法線。
該計算方法簡單、有效,能快速計算分析得到每個方向的用來擬合斷面圓的斷面特征點和特征點的法線。
進一步的,所述步驟三包括以下幾個步驟:
計算管段SCS1和管段SCS2的所有銜接點及銜接點法線,具體為:
S3-1,銜接點即為兩兩管段的交點,為三個近似半圓,當點SC、點S1、點S2、點S3四點不共面時,每個半圓以點O1為起點,點O2為終點,且點O1與點O2關于點SC對稱,計算點O1和點O2的坐標,計算公式為:
其中t1和t2為計算參數(shù)為數(shù)值,a1、b1分別為S1、S2的首個斷面特征點;
聯(lián)立該公式的前兩個等式,按數(shù)值展開可列6個方程,如下式:
解得t1、t2和O1(xo1,yo1,zo1)坐標,然后利用第三個等式O2=2SC-O1求得O2坐標。
當點SC、點S1、點S2、點S3四點共面時,取點SC和點S1、點S2和點S3四點所在平面的面法線方向上,距離為管段半徑的兩個點作為點O1和點O2;
S3-2,根據(jù)點O1和點O2的坐標,計算點O1和點O2的法線坐標,計算公式為:
S3-3,計算點O1與點O2之間的中間銜接點Ti(1≤i<n/2):
已知S1和S2的斷面特征點ai+1和點bn+1-i,其中,n為擬合正多邊形邊數(shù),分別沿著S1SC、S2SC方向求得銜接點Ti的坐標,計算公式為:
其中,k1,k2是數(shù)值,為中間變量,兩個向量等式按數(shù)值展開后,可列6個方程,如下式:
求解得到k1,k2以及銜接點Ti坐標
銜接點Ti的法線坐標,按下式求得為:
依次取1≤i<n/2,計算得到管段SCS1和管段SCS2所有銜接點Ti(1≤i<n/2)的坐標及其法線。
進一步按以上步驟分別求得管段SCS2和管段SCS3的所有銜接點Ui(1≤i<n/2)及其法線,以及管段SCS3和管段SCS1的所有銜接點Wi(1≤i<n/2)坐標及其法線。
該計算方法簡單、有效,能快速計算分析得到三通的銜接點以及銜接點的法線。
進一步的,所述步驟四包括以下步驟:
S4-1、在得到所有的截面點和銜接點以后,使用空間四邊形構造每個面,最終構造出圓管三通模型的結構主體;
S4-2、對三通模型進行制作管口邊緣、設置頂點顏色或增加紋理的美化工作,完善三通建模。
該構造三通模型的方法簡單,能快速構造出圓管三通模型的主體,且構造出的圓管三通模型的主體具有美觀的特點。
本發(fā)明的有益效果是:通過本發(fā)明的應用,能夠建立形象、直觀、合理的三通模型,實現(xiàn)圓管三通的快速、有效建模,提高了圓管三通的建模效率,可有力促進三維技術在管線信息管理中的應用。
本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明的流程示意圖;
圖2是圓管三通結構圖;
圖3是斷面特征點起始點a1、內中心點O1計算示意圖;
圖4是銜接點示意圖;
圖5是銜接點計算示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
在本發(fā)明的描述中,除非另有規(guī)定和限定,需要說明的是,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是機械連接或電連接,也可以是兩個元件內部的連通,可以是直接相連,也可以通過中間媒介間接相連,對于本領域的普通技術人員而言,可以根據(jù)具體情況理解上述術語的具體含義。
本發(fā)明提供了一種圓管三通構建方法,核心在于尋找三通管線的中心軸和中心點,利用中心軸求出管口斷面特征點坐標后,基于射線求交得到各管段銜接處的交點坐標,最后構建管線三通。
圓管三通是由三個等長管段組成的管段連接,三維建模的已知條件包括一個中心點SC,三個管段(一端中心點為公共的SC,另一端的中心點分別為S1、S2、S3),管段半徑r,以及用來擬合管段斷面的斷面圓的多邊形邊數(shù)n,如圖2所示,本文即要建立如圖2的三通骨架,進而實現(xiàn)三通參數(shù)化建模。
SC是三通中心,連接了三根管段,三個管段的截面中心點分別為點S1、點S2、點S3,三根管線的方向可由S1、S2、S3與SC的連線表示。又有構成三通的三個管段是等長的,因此有SC到S1(x1,y1,z1)、S2(x2,y2,z2)、S3(x3,y3,z3)的距離相等。
在本文中,定義了三通的“中心軸”和三通“內中心點”(注意不是SC)具有以下特點:
(1)中心軸,即圖2中的O1O2或SCO連線,控制了三通的對稱性,其為兩兩管段所構成的角的角平分面的交線,兩兩管段所構成的角的角平分面垂直于該角所在的面且過該角的角平分線,例如銜接線T(為圖4中T1、T2、T3點構成的交線)、W(為圖4中W1、W2、W3點構成的交線)、U(為圖4中U1、U2、U3點構成的交線)三根銜接線的交點為O1、O2。
(2)內中心點,即為圖2中的O1,相對的SC對稱的點稱為外中心點,見圖2中的O2點,是三根管段的銜接線T、W、U的公共點,管段SCS1與管段SCS2的銜接線為T,包括點O1、T1、T2、T3、O2(見圖4),其中O1、O2是三根銜接線的交點。
(3)中心軸通過三通中心SC。在實際建模時,可將SC置于原點(0,0,0)位置,建模完成后,再將三通模型平移到實際位置即可。
(4)中心軸和內中心點控制了管段的擬合正多邊形頂點的起始位置,如圖3中a1點為SCS1管段計算斷面特征點(a1、a2、a3…an)的起始點,b1、c1分別為SCS2、SCS3管段斷面特征點的起始點。且有a1點沿S2SC方向與中心軸相交,交點即為三通中心點O1,b1、c1點同理。
如圖1所示,該圓管三通構建方法具體包括以下幾個步驟:
步驟一、設定圓管三通的三個方向、圓管三通中心點SC以及圓管三通各自的截面中心點S1、S2和S3,計算圓管三通的中心軸SCO。
根據(jù)點SC、點S1、點S2和點S3的是否四點共面,具體分為兩種情況:
S1-1,當點SC和點S1、點S2和點S3不共面時,取點S1(x1,y1,z1)、點S2(x2,y2,z2)和點S3(x3,y3,z3)與點SC距離相等,且該距離為SD,得到以下計算公式:
求得方程一個解為SC,為已知坐標,另一個解為中心軸上另一與點S1(x1,y1,z1)、點S2(x2,y2,z2)和點S3(x3,y3,z3)距離相同且為SD的點O,連接點SC與點O,則得到中心軸SCO;
比如,這里令點SC坐標為坐標原點(0,0,0),建模完成后,再將三通模型平移到實際位置即可。
S1-2,當點SC和點S1、點S2和點S3共面時,取點SC和點S1、點S2和點S3四點所在平面的面法線方向上,距離為管段半徑的兩個點O1、O2為中心點,連接O1、O2構成中心軸O1O2,此時,取點O,令其與點O1重合;因點SC與點O的連線SCO與點O1與點O2的連線O1O2均為圓管三通的中心軸,則點O1、點O2在中心軸SCO上。
步驟二、根據(jù)中心軸SCO和圓管三通的三個方向,分別計算每個方向的用來擬合斷面圓的正多邊形頂點,即管段SCS1、管段SCS2和管段SCS3的斷面特征點,以及特征點的法線。
以管段SCS1為例,計算管段SCS1的斷面特征點,如圖3所示,步驟二包括以下幾個步驟:
S2-1,確定旋轉軸S1SC;旋轉面為過點S1,垂直于旋轉軸S1SC的截面SJ1;
S2-2,根據(jù)三通中心軸SCO、管段方向SCS1,管段半徑r,r為三個管段的最大管徑,擬合正多邊形邊數(shù)n,確定起始旋轉點,即斷面第一個特征點a1,計算公式為:
rotateP1為旋轉中心軸矢量,normalize()是將矢量轉化為單位向量,P1為中心軸矢量SCO和旋轉軸矢量S1SC叉乘得到的中間向量,垂直于平面S1-SC-O,R(rotateP1,π/2)表示繞rotateP1逆時針旋轉90度,P1StartDrirect為擬合正多邊形頂點初始計算的方向,指向起始旋轉點a1,擬合正多邊形邊數(shù)n為已知量,根據(jù)用戶需要設定,一般取8或10。
根據(jù)計算得到,點O與點a1,點S1、點SC共面,證明如下:點SC、點S1、點O確定一個平面m,P1由OSC和S1SC叉乘得到,則為m的法線,a1由P1旋轉90度后與S1SC相加得到,因此a1在平面m內,因此O與a1、S1、SC共面。
S2-3,確定旋轉矩陣R:繞旋轉軸rotateP1逆時針旋轉deltaAngle得到的旋轉矩陣為R(rotateP1,deltaAngle),其中deltaAngle=2*π/n,n為擬合正多邊形邊數(shù);
S2-4,以a1為起始旋轉點,以rotateP1為軸,利用旋轉矩陣R(rotateP1,deltaAngle)計算出擬合正多邊形的所有的點ai(i=1,...,n),同時計算所有特征點的法線,計算公式如下:
ai+1=ai*R(rotateP1,deltaAngle)(i=1,...,n-1);
Ni=ai-S1,Ni.normalize(i=1,...,n),其中,法線方向N為從點S1指向特征點的法線;
S2-5,采用以上方法,求得管段SCS2的斷面特征點bi(i=1,...,n)及其特征點的法線、管段SCS3的斷面特征點ci(i=1,...,n)及其特征點的法線。
步驟三、計算管段SCS1、管段SCS2和管段SCS3的交點,即三通的銜接點,并計算銜接點的法線。
銜接點即為兩兩管段的交點,如圖4所示,為三個近似半圓,每個半圓以O1為起點,O2為終點,且O1與O2關于SC對稱,包含中間點包括的T1、T2、T3;W1、W2、W3;U1、U2、U3,見圖4,其中,擬合正多邊形邊數(shù)n=8。O1、O2點為三個管段共同的兩個交點。計算方法為利用兩個射線求交點的方式得到中間點,而O2點利用O2是O1關于SC的對稱點求出,因此所述步驟三包括以下幾個步驟:
S3-1,銜接點即為兩兩管段的交點,為三個近似半圓,當點SC、點S1、點S2、點S3四點不共面時,每個半圓以點O1為起點,點O2為終點,且點O1與點O2關于點SC對稱,計算點O1和點O2的坐標,計算公式為:
其中t1和t2為計算參數(shù)為數(shù)值,a1、b1分別為S1、S2的首個斷面特征點。
聯(lián)立該公式的前兩個等式,按數(shù)值展開可列6個方程,如下式:
解得t1、t2和O1(xo1,yo1,zo1)坐標,共5個未知數(shù),然后利用第三個等式O2=2SC-O1求得O2坐標。
當點SC、點S1、點S2、點S3四點共面時,取點SC和點S1、點S2和點S3四點所在平面的面法線方向上,距離為管段半徑的兩個點作為點O1和點O2,即步驟S1-2中所記載的點O1和點O2,點O1和點O2連線為中心軸。
S3-2,根據(jù)點O1和點O2的坐標,計算點O1和點O2的法線坐標,計算公式為:
S3-3,計算點O1與點O2之間的中間銜接點Ti(1≤i<n/2):
已知S1和S2的斷面特征點ai+1和點bn+1-i,其中,n為擬合正多邊形邊數(shù),比如圖2中,n=8,分別沿著S1SC、S2SC方向求得銜接點Ti的坐標,計算公式為:
其中,k1,k2是數(shù)值,為中間變量,兩個向量等式按數(shù)值展開后,可列6個方程,如下式:
求解得到k1,k2以及銜接點Ti坐標
下面以T1為例證明證明坐標存在,即a2、b2為S1和S2的斷面特征點,分別沿著S1SC、S2SC方向存在交點,交點為T1,可根據(jù)幾何關系證明存在交點T1。簡要證明如下:
參考圖5,由于a1沿S1SC方向與b1沿S2SC方向存在交點為O1,要證明a2、b8分別沿著S1SC、S2SC方向存在交點T1,則需證明a2與b8到面a1b1O1的距離相等。取面SCS1S2的法線S1N1、S2N2,有S1N1//S2N2,由于SCS1、SCS2分別是截面S1、S2的法線,則S1N1、S2N2分別在截面S1、S2內。由于面SCS1S2//面a1O1b1,則得到a1與b1到面SCS1S2的距離相同,即a1在S1N1上的投影與b1在S2N2上的投影長度相同,則角N1S1a1=角N2S2b1,由于a2、b8分別由a1、b1旋轉相同角度得到,則a2與b8在法線S1N1、S2N2上的投影長度相同,進一步得到a2與b8到面a1b1O1的距離相等,從而證明T1存在。
計算銜接點Ti的法線坐標,按下式求得為:
由此,得到管段SCS1和管段SCS2所有銜接點Ti(1≤i<n/2)的坐標及其法線;
S3-4,同理,進一步按以上步驟分別求得管段SCS2和管段SCS3的所有銜接點Ui(1≤i<n/2)及其法線,以及管段SCS3和管段SCS1的所有銜接點Wi(1≤i<n/2)坐標及其法線。
步驟四、組裝,根據(jù)計算出的斷面特征點和銜接點,組裝成三通模型。
S4-1,在得到所有的截面點和銜接點以后,按圖2的結構示意圖,使用空間四邊形構造每個面,最終構造出圓管三通模型的結構主體。
具體可以表現(xiàn)為依據(jù)上述步驟進行圓管三通模型生成,通過輸入?yún)?shù)SC、S1、S2、S3以及半徑r1、r2、r3等,實現(xiàn)圓管三通模型的生成。
S4-2,進一步的,可對模型進行美化,如制作管口邊緣等,設置頂點顏色、增加紋理,完善三通建模。對于半徑不同的三通,可先取最大半徑為同一半徑,按上述步驟計算,在最后組裝時,將斷面特征點利用不同半徑計算得到,然后按照同樣的組裝關系得到不同半徑的圓管三通,或者重新連接一截不同半徑的管段即可。
最后,根據(jù)步驟四中組裝得到的三通模型進行圓管三通的生產。
本發(fā)明不僅可以實現(xiàn)標準三通模型的構建,還可以實現(xiàn)不同方向的圓管三通模型構建,整個過程完全自動化,構建效果好,為開展管線三維建模、生產工作,建立三維管線信息系統(tǒng)提供了技術支撐。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
盡管已經示出和描述了本發(fā)明的實施例,本領域的普通技術人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由權利要求及其等同物限定。