劉春雷,尹 勇,孫霄峰,張秀鳳,神和龍
(大連海事大學(xué),遼寧 大連 116026)
基于 STL 模型的船舶吃水轉(zhuǎn)換功能實(shí)現(xiàn)
劉春雷,尹勇,孫霄峰,張秀鳳,神和龍
(大連海事大學(xué),遼寧大連 116026)
提出一種基于船舶外殼 STL 模型及 S-H 多邊形剪裁算法的船舶吃水轉(zhuǎn)化方法。根據(jù)船舶設(shè)計(jì)部門提供的船舶 STL 模型,用船舶六面水尺所在的平面切割 STL 模型,得到各個(gè)水尺的封閉多邊形。根據(jù)船舶當(dāng)前的載況計(jì)算出船舶的首尾吃水及橫傾角,確定傾斜水線面的方程?;?S-H 多邊形剪裁算法,將各個(gè)水尺的封閉多邊形和水線面求交即可計(jì)算出六面吃水。以 6.4 萬(wàn)噸散貨船“Spring Cosmos”和25 萬(wàn)噸礦砂船“Shandong Ren He”為例進(jìn)行實(shí)例計(jì)算,和船舶設(shè)計(jì)軟件 NAPA 計(jì)算值相比,絕對(duì)誤差都在 1 cm 左右,證明上述方法的正確性。實(shí)驗(yàn)表明:算法計(jì)算精度較高,通用性好,適用于船舶任意載況,具有一定的工程實(shí)用價(jià)值。
船舶工程;STL 模型;S-H 剪裁算法;船舶吃水
船舶吃水在船舶進(jìn)出港、過(guò)淺灘、系靠碼頭和裝卸貨物時(shí)起著極其重要的作用[1]。它是衡量船舶安全性的重要指標(biāo),是計(jì)算船舶富余水深及凈空高度的基礎(chǔ)。目前大副進(jìn)行貨物預(yù)配載時(shí),會(huì)根據(jù)船舶裝載手冊(cè)或船舶配載儀計(jì)算出船舶的當(dāng)前浮態(tài),即船舶首吃水、尾吃水及橫傾角[2-6]。然而船員更關(guān)心的是當(dāng)前載況下船舶的六面吃水。由于船舶首尾垂線和船舶六面水尺縱向位置的不同,相同載況下其吃水讀數(shù)會(huì)有不同,就需要一種由船舶首尾吃水計(jì)算船舶六面吃水的方法。
本文基于船舶外殼三維 STL 模型和計(jì)算機(jī)圖形學(xué)的 S-H 多邊形剪裁算法,探討一種由船舶首尾吃水計(jì)算船舶六面吃水的方法,該方法計(jì)算精度較高,通用性較好。
在船舶實(shí)際營(yíng)運(yùn)過(guò)程中經(jīng)常用到的吃水為船舶首尾吃水及六面吃水。首尾垂線吃水是指船舶首尾垂線處的吃水。通常描述船舶浮態(tài)的首吃水、尾吃水及吃水差就是指船舶首尾垂線吃水。六面吃水船舶水尺刻劃于船體兩舷側(cè),用于計(jì)量船舶裝載量的特殊標(biāo)尺,船舶水尺由直線和數(shù)字兩部分構(gòu)成,是觀測(cè)和計(jì)量船舶載貨和配載的依據(jù),通常位于船尾、船中及船首兩側(cè)船殼。然而為了提高水尺精度和讀取水尺讀數(shù)方便,船舶設(shè)計(jì)部門經(jīng)常將船舶尾部水尺分為兩部分,一部分在船舶舵上繪制,一部分在船舶尾部繪制,如圖1所示為25 萬(wàn)噸礦砂船六面水尺示意圖。
從圖1中可知,船舶首尾垂線所在的縱向位置和船舶首尾水尺并不相同,所以船舶首尾水尺和船舶六面水尺的讀數(shù)并不相同。
STL(STereo Lithography)文件是一種 3D 模型文件格式,是 3D SYSTEM 公司于 1988 年制定的一個(gè)接口協(xié)議。它是一種為快速原型制造技術(shù)服務(wù)的三維圖形文件格式,在科學(xué)計(jì)算可視化、計(jì)算機(jī)動(dòng)畫、3D 打印、虛擬現(xiàn)實(shí)及快速成形等領(lǐng)域中應(yīng)用廣泛。其無(wú)序地列出了構(gòu)成實(shí)體表面的所有三角形面片的信息,包括三角形各個(gè)定點(diǎn)的三維坐標(biāo)及三角形面片的法矢量,可以簡(jiǎn)單認(rèn)為是將曲面三角化的結(jié)果。
圖2給出6.4萬(wàn)散貨船“SPRING COSMOS”外殼及所有艙室的STL模型,圖3所示為5.6 萬(wàn)散貨船“太行 128”的 STL 模型,其來(lái)源于船舶設(shè)計(jì)軟件 NAPA,是船舶的真實(shí)設(shè)計(jì)數(shù)據(jù)[6],數(shù)據(jù)可靠性好。
圖2 64 K 散貨船“Spring Cosmos”的 STL 模型Fig. 2 STL model of 64 K bulk carrier “Spring Cosmos”
圖3 56 K 散貨船“太行 128”的 STL 模型Fig. 3 STL model of bulk carrier “Taihang 128”
已知船舶首尾吃水計(jì)算六面吃水的基本步驟如下:
1)用各個(gè)水尺所在的縱剖面切割船舶外殼STL模型,獲得船首、船中計(jì)船尾水尺的封閉多邊形。
2)由船舶首尾吃水及橫傾角可得到傾斜水線面的方程。
3)船舶水尺所在的剖面和傾斜水線面求交,得到水線部分的多邊形,交點(diǎn)的垂向坐標(biāo)即為六面水尺讀數(shù)。
3.1水尺剖面的確定
船舶各個(gè)水尺所在剖面的肋位號(hào)及縱向坐標(biāo)可以從船舶設(shè)計(jì)部門提供的船舶裝載手冊(cè)中查詢得來(lái)。以25 萬(wàn)散貨“Shandong Renhe”為例:舵上的水尺肋位號(hào)-3#(-2.7 m)、船尾水尺肋位號(hào) 16#(14.4 m)、船中水尺肋位號(hào) 89#(156.15 m)及船首水尺肋位號(hào)154#(312 m)。用水尺所在肋位所確定的縱剖面去切割船舶外殼的 STL 模型即可獲得各個(gè)水尺的封閉多邊形,如圖4所示。
圖4 水尺剖面切割外殼 STL 模型Fig. 4 STL model of ship hull
圖5為切割完成后得到的各個(gè)水尺的封閉多邊形。在切割 STL 模型時(shí),用到的主要關(guān)鍵技術(shù)有:STL 模型數(shù)據(jù)解析[7-8]、空間三角形和空間平面求交[9]、截面輪廓提取及截面輪廓的三角化[10-16]。
圖5 各個(gè)水尺剖面Fig. 5 The draft section
3.2傾斜水線面確定
本文采用文獻(xiàn)[17-20]提出的船體坐標(biāo)系和固定坐標(biāo)系,從固定坐標(biāo)系 ox'y'z' 到船體坐標(biāo)系 oxyz 的坐標(biāo)變換矩陣為:
式中:θ為船舶橫傾角;φ 為船舶縱傾角;α 為傾斜角,即傾斜水線面與基準(zhǔn)面之間的夾角
在固定坐標(biāo)系下水平面的法矢量 n=(0,0,1),則在船體坐標(biāo)系下水線面的法矢量為:
傾斜水線面過(guò)船中吃水點(diǎn)(0,0,Tm),即可得到傾斜水線面的一般式方程:
3.3基于 S-H 剪裁算法線面求交計(jì)算六面吃水
S-H(Sutherland-Hodgman)算法也叫逐邊裁剪法,該算法由薩瑟蘭德(I.E.Sutherland)和霍德曼(Hodgman)在 1974 年提出。這種算法采用了分割處理、逐邊裁剪的思想,是一種剪裁多邊形區(qū)的高效算法。其總體策略是順序的將每一多邊形的一對(duì)頂點(diǎn)送給一組裁剪器(左、右、下、上)。一個(gè)裁剪器完成對(duì)一對(duì)頂點(diǎn)的處理后,該邊留下的坐標(biāo)值立即送給下一個(gè)剪裁器,最終輸出的是一個(gè)完整的多邊形填充區(qū)邊界的頂點(diǎn)隊(duì)列。
在用裁剪邊界對(duì)多邊形的邊裁剪時(shí)有以下 4種情況需要考慮:
1)多邊形邊的第一端點(diǎn)在裁剪邊界外部而第二端點(diǎn)在內(nèi)部;
2)2個(gè)端點(diǎn)都在剪裁邊界內(nèi)部;
3)是第一端點(diǎn)在邊界內(nèi)部而第二端點(diǎn)在邊界外部;
4)2個(gè)端點(diǎn)都在裁減邊界外部。這 4種情況的輸出點(diǎn)情況如圖6所示:情況 1 輸出交點(diǎn)和終點(diǎn);情況2 輸出終點(diǎn);情況 3 輸出交點(diǎn);情況 4 無(wú)交點(diǎn)輸出。
圖6 S-H 多邊形剪裁算法Fig. 6 S-H polygon clipping algorithms
圖7所示為25 萬(wàn)噸礦石船“Shandong Ren He”某一載況下,采用 S-H 剪裁算法進(jìn)行求交計(jì)算的實(shí)驗(yàn)結(jié)果,圖7中部分為各個(gè)水尺剖面與傾斜水線面求交得到水下部分的封閉多邊形,其交點(diǎn)垂向坐標(biāo)即為水尺讀數(shù)。
本文基于 VS2013 平臺(tái),采用 C# 編程語(yǔ)言編制了船舶吃水轉(zhuǎn)換程序。以 25 萬(wàn)噸礦砂船“Shandong Ren He”及 6.4 萬(wàn)噸散貨船“Spring Cosmos”進(jìn)行了實(shí)例計(jì)算,和船舶設(shè)計(jì)軟件 NAPA 計(jì)算結(jié)果相比,誤差較小。如表1和表2所示。
表1中 ,LOAD0 為空船載況,LOAD1 為壓載出港載況,LOAD5 為均質(zhì)貨滿載出港載況,LOAD18 為礦石裝載載況,LOAD21 為隔艙裝載載況。
表2中,LOAD0 為空船載況,LOAD3 為壓載出港載況,LAOD8 為壓載進(jìn)港載況,LAOD12 為均質(zhì)貨滿載出港載況, LOAD37 為隔艙裝載工況。
分析表1和表2中數(shù)據(jù)可知,本文所述方法的計(jì)算結(jié)果和船舶設(shè)計(jì)軟件 NAPA 的計(jì)算結(jié)果的絕對(duì)誤差基本在 1 cm 以下,NAPA 軟件的計(jì)算結(jié)果保留到了兩位小數(shù)字,若本文的計(jì)算結(jié)果也保留到 2位小數(shù)字,和NAPA 計(jì)算結(jié)果基本沒(méi)有差別,證明了本文所述方法的正確性。
表1 25 萬(wàn)噸礦砂船船中水尺計(jì)算結(jié)果Tab. 1 Midship draft calculate result of 250 k ore carrier
表2 6.4 萬(wàn)噸散貨船船中水尺計(jì)算結(jié)果Tab. 2 Midship draft calculate result of 64 k bulk carrier
本文探討了一種基于船舶外殼三維 STL 模型及 S-H多邊形剪裁算法計(jì)算船舶六面吃水的方法,可得到如下結(jié)論:
1)船舶 STL 網(wǎng)格模型來(lái)源于船舶設(shè)計(jì)數(shù)據(jù),數(shù)據(jù)來(lái)源可靠,可保證計(jì)算精度;
2)將船舶吃水轉(zhuǎn)換問(wèn)題轉(zhuǎn)化成封閉多邊形和傾斜水線面的求交問(wèn)題,通過(guò)切割外殼 STL 模型得到各個(gè)水尺的封閉多邊形,采用 S-H 剪裁算法處理多邊形和水線面求交問(wèn)題,程序通用性好,適用于各種剖面形狀,包括三體船、五體船等特種船舶;
3)上述算法也可解決船檢人員在水尺計(jì)重過(guò)程中船舶一側(cè)吃水不方便讀取的問(wèn)題,即已知一面水尺的水尺讀數(shù)和橫傾角,計(jì)算出另一面的水尺讀數(shù)。
文中的方法已經(jīng)成功應(yīng)用在研究所自主研發(fā)的散貨船裝載計(jì)算機(jī)系統(tǒng)中,計(jì)算精度較高,通用性較好,具有一定的工程實(shí)用價(jià)值。
[1]盛振邦, 劉應(yīng)中. 船舶原理(上冊(cè))[M]. 上海: 上海交通大學(xué)出版社, 2003: 20-44. SHENG Zhen-bang, LIU Ying-zhong. Principles of ship[M]. Shanghai: Shanghai JiaoTong University Press, 2003: 20-24.
[2]劉輝強(qiáng). 水尺計(jì)重及其誤差分析[D]. 大連: 大連海事大學(xué),2010. LIU Hui-qiang. Draft survey and errors analysis[D]. Dalian:Dalian Maritime University, 2010.
[3]RAN X, SHI C J, CHEN J B, et al. Draft line detection based on image processing for ship draft survey[C]//Proceedings of the 2011 2nd International Congress on Computer Applications and Computational Science. Berlin Heidelberg: Springer,2012: 39-44.
[4]GU H W, ZHANG W, XU W H, et al. Digital measurement system for ship draft survey[J]. Applied Mechanics and Materials, 2013, 333-335: 312-316.
[5]MAILLOT P G. A new, fast method for 2D polygon clipping:analysis and software implementation[J]. ACM Transactions on Graphics (TOG), 1992, 11(3): 276-290.
[6]劉春雷, 張秀鳳, 孫霄峰, 等. 基于加密型值表的船舶靜水力特性精確計(jì)算[J]. 中國(guó)造船, 2013, 54(4): 163-172. LIU Chun-lei, ZHANG Xiu-feng, SUN Xiao-feng, et al. Hydrostatic performance calculation of vessels based on densified table of offsets[J]. Shipbuilding of China, 2013, 54(4):163-172.
[7]紀(jì)小剛. RP系統(tǒng)中STL模型的分割與拼接研究[D]. 南京: 南京理工大學(xué), 2003: 23-47. JI Xiao-gang. Research of STL model's rectification and topology in RP system[D]. Nanjing: Nanjing University of Science and Technology, 2003: 23-47.
[8]SCHNEIDER P J, EBERLY D H. 計(jì)算機(jī)圖形學(xué)幾何工具算法詳解[M]. 周長(zhǎng)發(fā), 譯. 北京: 電子工業(yè)出版社, 2005:270-392. SCHNEIDER P J. EBERLY D H. Geometric tools for computer graphics[M]. ZHOU Chang-fa, Trans. Beijing: Publishing House of Electronics Industry, 2005: 270-392.
[9]RAPPOPORT A. An efficient algorithm for line and polygon clipping[J]. The Visual Computer, 1991, 7(1): 19-28.
[10]潘海鵬, 周天瑞, 朱根松, 等. STL模型切片輪廓數(shù)據(jù)的生成算法研究[J]. 中國(guó)機(jī)械工程, 2007, 18(17): 2076-2079. PAN Hai-peng, ZHOU Tian-rui, ZHU Gen-song, et al. Research on the algorithm for generating the slicing profile of STL model[J]. China Mechanical Engineering, 2007, 18(17):2076-2079.
[11]金文華, 何濤, 唐衛(wèi)清, 等. 簡(jiǎn)單快速的平面散亂點(diǎn)集凸包算法[J]. 北京航空航天大學(xué)學(xué)報(bào), 1999, 25(1): 72-75. JIN Wen-hua, HE Tao, TANG Wei-qing, et al. Simple fast convex hull algorithm of planar point set[J]. Journal of Beijing University of Aeronautics Astronautics, 1999, 25(1): 72-75.
[12]胡德洲, 李滌塵, 洪軍, 等. 快速成形制造中截面輪廓快速生成算法研究[J]. 中國(guó)機(jī)械工程, 2001, 12(6): 654-656. HU De-zhou, LI Di-chen, HONG Jun, et al. Research on the algorithm for rapidly generating cross-sectional contour in rapid prototyping & manufacturing[J]. China Mechanical Engineering, 2001, 12(6): 654-656.
[13]李學(xué)軍, 黃文清. 平面區(qū)域三角化的快速算法[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2003, 15(2): 233-238. LI Xue-jun, HUANG Wen-qing. Fast triangulation algorithm for planar regions[J]. Journal of Computer-aided Design & Computer Graphics, 2003, 15(2): 233-238.
[14]閔衛(wèi)東, 唐澤圣. 二維任意域內(nèi)點(diǎn)集的Delaunay三角劃分的研究[J]. 計(jì)算機(jī)學(xué)報(bào), 1995, 18(5): 357-364. MIN Wei-dong, TANG Ze-sheng. The Delaunay triangulation of a point set within an arbitrary 2D domain[J]. Chinese Journal of Computers, 1995, 18(5): 357-364.
[15]馬小虎, 潘志庚, 石教英. 基于凹凸頂點(diǎn)判定的簡(jiǎn)單多邊形Delaunay三角剖分[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 1999,11(1): 1-3. MA Xiao-hu, PAN Zhi-geng, SHI Jiao-ying. Delaunay triangulation of simple polygon based on determination of CONVEXCONCAVE vertices[J]. Journal of Computer-aided Design and Computer Graphics, 1999, 11(1): 1-3.
[16]劉少華, 湯軍, 吳東勝, 等. 簡(jiǎn)單多邊形三角剖分的一種快速算法及應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2008, 25(3): 79-80. LIU Shao-hua, TANG Jun, WU Dong-sheng, et al. A fast algorithm for simple polygon triangulation and its applications[J]. Computer Applications and Software, 2008,25(3): 79-80.
[17]趙曉非, 林焰. 關(guān)于解船舶浮態(tài)問(wèn)題的矩陣方法[J]. 中國(guó)造船, 1985(3): 57-66. ZHAO Xiao-fei, LIN Yan. Matrix methods for solving ship floating state problem[J]. Shipbuilding of China, 1985(3):57-66.
[18]林焰, 李鐵驪, 紀(jì)卓尚. 破損船舶自由浮態(tài)計(jì)算[J]. 大連理工大學(xué)學(xué)報(bào), 2001, 41(1): 85-89. LIN Yan, LI Tie-li, JI Shang-zhuo. Ship damage floating calculation[J], Journal of Dalian University of Technology, 2001,41(1): 85-89.
[19]陸叢紅, 林焰, 紀(jì)卓尚. 基于曲面表達(dá)的幾何特性計(jì)算及其在船舶工程中的應(yīng)用[J]. 哈爾濱工程大學(xué)學(xué)報(bào), 2005, 26(6):697-703. LU Cong-hong, LIN Yan, JI Zhuo-shang. Geometric properties calculation based on surface representation and its application to ship engineering[J]. Journal of Harbin Engineering University, 2005, 26(6): 697-703.
[20]張明霞. 基于NURBS曲面的船舶破艙穩(wěn)性計(jì)算方法研究[D].大連: 大連理工大學(xué), 2002. ZHANG Ming-xia. Study of hull damage stability calculation with NURBS technology[D]. Dalian: Dalian University of Technology, 2002.
Ship draft conversion based STL model
LIU Chun-lei, YIN Yong, SUN Xiao-feng, ZHANG Xiu-feng, SHEN He-long
(Dalian Maritime University, Dalian 116026, China)
A ship draft conversion method is proposed based on ship STL model and S-H polygon clipping algorithm. Ship's shell STL model is provided by the ship design department. By using of the planes which is determined by six draft marks to clip the STL model, closed polygons of each draft mark is obtained. According to the current loading condition to calculate the heel angle and fore-and-aft draft, the equation of the inclined waterline is calculated. Six drafts is calculated through the polygon and water plane intersection by using of S-H clipping algorithm. 64 000 DWT bulk carrier Spring Cosmos and 250 000 DWT ore carrier Shandong Ren He were taken as examples to calculate six draft, compared with the result calculated by ship design software NAPA, all the absolute errors are about 1 cm, method mentioned above is proved. Experiments showed that algorithm's calculation precision is higher and can applicable to use in any ship loading condition. The method has a certain practical application value and versatility.
ship engineering;STL model;S-H clipping algorithm;ship draft
U661.2+1
A
1672-7619(2016)09-0069-05
10.3404/j.issn.1672-7619.2016.09.013
2015-11-25;
2016-03-07
國(guó)家863計(jì)劃資助項(xiàng)目(2015AA016404);海洋公益性行業(yè)科研資助項(xiàng)目(201505017-4) ;交通部應(yīng)用基礎(chǔ)研究資助項(xiàng)目(2014329225370)
劉春雷(1987-),男,博士研究生,研究方向?yàn)榇爸悄芑漭d儀。