劉春雷,尹 勇,孫霄峰,張秀鳳,神和龍
(大連海事大學,遼寧 大連 116026)
基于 STL 模型的船舶吃水轉換功能實現
劉春雷,尹勇,孫霄峰,張秀鳳,神和龍
(大連海事大學,遼寧大連 116026)
提出一種基于船舶外殼 STL 模型及 S-H 多邊形剪裁算法的船舶吃水轉化方法。根據船舶設計部門提供的船舶 STL 模型,用船舶六面水尺所在的平面切割 STL 模型,得到各個水尺的封閉多邊形。根據船舶當前的載況計算出船舶的首尾吃水及橫傾角,確定傾斜水線面的方程。基于 S-H 多邊形剪裁算法,將各個水尺的封閉多邊形和水線面求交即可計算出六面吃水。以 6.4 萬噸散貨船“Spring Cosmos”和25 萬噸礦砂船“Shandong Ren He”為例進行實例計算,和船舶設計軟件 NAPA 計算值相比,絕對誤差都在 1 cm 左右,證明上述方法的正確性。實驗表明:算法計算精度較高,通用性好,適用于船舶任意載況,具有一定的工程實用價值。
船舶工程;STL 模型;S-H 剪裁算法;船舶吃水
船舶吃水在船舶進出港、過淺灘、系靠碼頭和裝卸貨物時起著極其重要的作用[1]。它是衡量船舶安全性的重要指標,是計算船舶富余水深及凈空高度的基礎。目前大副進行貨物預配載時,會根據船舶裝載手冊或船舶配載儀計算出船舶的當前浮態,即船舶首吃水、尾吃水及橫傾角[2-6]。然而船員更關心的是當前載況下船舶的六面吃水。由于船舶首尾垂線和船舶六面水尺縱向位置的不同,相同載況下其吃水讀數會有不同,就需要一種由船舶首尾吃水計算船舶六面吃水的方法。
本文基于船舶外殼三維 STL 模型和計算機圖形學的 S-H 多邊形剪裁算法,探討一種由船舶首尾吃水計算船舶六面吃水的方法,該方法計算精度較高,通用性較好。
在船舶實際營運過程中經常用到的吃水為船舶首尾吃水及六面吃水。首尾垂線吃水是指船舶首尾垂線處的吃水。通常描述船舶浮態的首吃水、尾吃水及吃水差就是指船舶首尾垂線吃水。六面吃水船舶水尺刻劃于船體兩舷側,用于計量船舶裝載量的特殊標尺,船舶水尺由直線和數字兩部分構成,是觀測和計量船舶載貨和配載的依據,通常位于船尾、船中及船首兩側船殼。然而為了提高水尺精度和讀取水尺讀數方便,船舶設計部門經常將船舶尾部水尺分為兩部分,一部分在船舶舵上繪制,一部分在船舶尾部繪制,如圖1所示為25 萬噸礦砂船六面水尺示意圖。
從圖1中可知,船舶首尾垂線所在的縱向位置和船舶首尾水尺并不相同,所以船舶首尾水尺和船舶六面水尺的讀數并不相同。
STL(STereo Lithography)文件是一種 3D 模型文件格式,是 3D SYSTEM 公司于 1988 年制定的一個接口協議。它是一種為快速原型制造技術服務的三維圖形文件格式,在科學計算可視化、計算機動畫、3D 打印、虛擬現實及快速成形等領域中應用廣泛。其無序地列出了構成實體表面的所有三角形面片的信息,包括三角形各個定點的三維坐標及三角形面片的法矢量,可以簡單認為是將曲面三角化的結果。
圖2給出6.4萬散貨船“SPRING COSMOS”外殼及所有艙室的STL模型,圖3所示為5.6 萬散貨船“太行 128”的 STL 模型,其來源于船舶設計軟件 NAPA,是船舶的真實設計數據[6],數據可靠性好。

圖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”
已知船舶首尾吃水計算六面吃水的基本步驟如下:
1)用各個水尺所在的縱剖面切割船舶外殼STL模型,獲得船首、船中計船尾水尺的封閉多邊形。
2)由船舶首尾吃水及橫傾角可得到傾斜水線面的方程。
3)船舶水尺所在的剖面和傾斜水線面求交,得到水線部分的多邊形,交點的垂向坐標即為六面水尺讀數。
3.1水尺剖面的確定
船舶各個水尺所在剖面的肋位號及縱向坐標可以從船舶設計部門提供的船舶裝載手冊中查詢得來。以25 萬散貨“Shandong Renhe”為例:舵上的水尺肋位號-3#(-2.7 m)、船尾水尺肋位號 16#(14.4 m)、船中水尺肋位號 89#(156.15 m)及船首水尺肋位號154#(312 m)。用水尺所在肋位所確定的縱剖面去切割船舶外殼的 STL 模型即可獲得各個水尺的封閉多邊形,如圖4所示。

圖4 水尺剖面切割外殼 STL 模型Fig. 4 STL model of ship hull
圖5為切割完成后得到的各個水尺的封閉多邊形。在切割 STL 模型時,用到的主要關鍵技術有:STL 模型數據解析[7-8]、空間三角形和空間平面求交[9]、截面輪廓提取及截面輪廓的三角化[10-16]。

圖5 各個水尺剖面Fig. 5 The draft section
3.2傾斜水線面確定
本文采用文獻[17-20]提出的船體坐標系和固定坐標系,從固定坐標系 ox'y'z' 到船體坐標系 oxyz 的坐標變換矩陣為:

式中:θ為船舶橫傾角;φ 為船舶縱傾角;α 為傾斜角,即傾斜水線面與基準面之間的夾角
在固定坐標系下水平面的法矢量 n=(0,0,1),則在船體坐標系下水線面的法矢量為:

傾斜水線面過船中吃水點(0,0,Tm),即可得到傾斜水線面的一般式方程:

3.3基于 S-H 剪裁算法線面求交計算六面吃水
S-H(Sutherland-Hodgman)算法也叫逐邊裁剪法,該算法由薩瑟蘭德(I.E.Sutherland)和霍德曼(Hodgman)在 1974 年提出。這種算法采用了分割處理、逐邊裁剪的思想,是一種剪裁多邊形區的高效算法。其總體策略是順序的將每一多邊形的一對頂點送給一組裁剪器(左、右、下、上)。一個裁剪器完成對一對頂點的處理后,該邊留下的坐標值立即送給下一個剪裁器,最終輸出的是一個完整的多邊形填充區邊界的頂點隊列。
在用裁剪邊界對多邊形的邊裁剪時有以下 4種情況需要考慮:
1)多邊形邊的第一端點在裁剪邊界外部而第二端點在內部;
2)2個端點都在剪裁邊界內部;
3)是第一端點在邊界內部而第二端點在邊界外部;
4)2個端點都在裁減邊界外部。這 4種情況的輸出點情況如圖6所示:情況 1 輸出交點和終點;情況2 輸出終點;情況 3 輸出交點;情況 4 無交點輸出。

圖6 S-H 多邊形剪裁算法Fig. 6 S-H polygon clipping algorithms
圖7所示為25 萬噸礦石船“Shandong Ren He”某一載況下,采用 S-H 剪裁算法進行求交計算的實驗結果,圖7中部分為各個水尺剖面與傾斜水線面求交得到水下部分的封閉多邊形,其交點垂向坐標即為水尺讀數。
本文基于 VS2013 平臺,采用 C# 編程語言編制了船舶吃水轉換程序。以 25 萬噸礦砂船“Shandong Ren He”及 6.4 萬噸散貨船“Spring Cosmos”進行了實例計算,和船舶設計軟件 NAPA 計算結果相比,誤差較小。如表1和表2所示。
表1中 ,LOAD0 為空船載況,LOAD1 為壓載出港載況,LOAD5 為均質貨滿載出港載況,LOAD18 為礦石裝載載況,LOAD21 為隔艙裝載載況。
表2中,LOAD0 為空船載況,LOAD3 為壓載出港載況,LAOD8 為壓載進港載況,LAOD12 為均質貨滿載出港載況, LOAD37 為隔艙裝載工況。
分析表1和表2中數據可知,本文所述方法的計算結果和船舶設計軟件 NAPA 的計算結果的絕對誤差基本在 1 cm 以下,NAPA 軟件的計算結果保留到了兩位小數字,若本文的計算結果也保留到 2位小數字,和NAPA 計算結果基本沒有差別,證明了本文所述方法的正確性。

表1 25 萬噸礦砂船船中水尺計算結果Tab. 1 Midship draft calculate result of 250 k ore carrier

表2 6.4 萬噸散貨船船中水尺計算結果Tab. 2 Midship draft calculate result of 64 k bulk carrier
本文探討了一種基于船舶外殼三維 STL 模型及 S-H多邊形剪裁算法計算船舶六面吃水的方法,可得到如下結論:
1)船舶 STL 網格模型來源于船舶設計數據,數據來源可靠,可保證計算精度;
2)將船舶吃水轉換問題轉化成封閉多邊形和傾斜水線面的求交問題,通過切割外殼 STL 模型得到各個水尺的封閉多邊形,采用 S-H 剪裁算法處理多邊形和水線面求交問題,程序通用性好,適用于各種剖面形狀,包括三體船、五體船等特種船舶;
3)上述算法也可解決船檢人員在水尺計重過程中船舶一側吃水不方便讀取的問題,即已知一面水尺的水尺讀數和橫傾角,計算出另一面的水尺讀數。
文中的方法已經成功應用在研究所自主研發的散貨船裝載計算機系統中,計算精度較高,通用性較好,具有一定的工程實用價值。
[1]盛振邦, 劉應中. 船舶原理(上冊)[M]. 上海: 上海交通大學出版社, 2003: 20-44. SHENG Zhen-bang, LIU Ying-zhong. Principles of ship[M]. Shanghai: Shanghai JiaoTong University Press, 2003: 20-24.
[2]劉輝強. 水尺計重及其誤差分析[D]. 大連: 大連海事大學,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]. 中國造船, 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]紀小剛. RP系統中STL模型的分割與拼接研究[D]. 南京: 南京理工大學, 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. 計算機圖形學幾何工具算法詳解[M]. 周長發, 譯. 北京: 電子工業出版社, 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模型切片輪廓數據的生成算法研究[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]金文華, 何濤, 唐衛清, 等. 簡單快速的平面散亂點集凸包算法[J]. 北京航空航天大學學報, 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]. 中國機械工程, 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]李學軍, 黃文清. 平面區域三角化的快速算法[J]. 計算機輔助設計與圖形學學報, 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]閔衛東, 唐澤圣. 二維任意域內點集的Delaunay三角劃分的研究[J]. 計算機學報, 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]馬小虎, 潘志庚, 石教英. 基于凹凸頂點判定的簡單多邊形Delaunay三角剖分[J]. 計算機輔助設計與圖形學學報, 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]劉少華, 湯軍, 吳東勝, 等. 簡單多邊形三角剖分的一種快速算法及應用[J]. 計算機應用與軟件, 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]趙曉非, 林焰. 關于解船舶浮態問題的矩陣方法[J]. 中國造船, 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]. 大連理工大學學報, 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]. 哈爾濱工程大學學報, 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曲面的船舶破艙穩性計算方法研究[D].大連: 大連理工大學, 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
國家863計劃資助項目(2015AA016404);海洋公益性行業科研資助項目(201505017-4) ;交通部應用基礎研究資助項目(2014329225370)
劉春雷(1987-),男,博士研究生,研究方向為船舶智能化配載儀。