一种散货船配载仪中图示的显示方法

文档序号:9275200阅读:5664来源:国知局
一种散货船配载仪中图示的显示方法
【技术领域】
[0001] 本发明涉及散货船配载仪,特别是一种散货船配载仪中图示的显示方法。
【背景技术】
[0002] 《1974年国际海上人命安全公约》(SOLAS公约)1997/1998修正版第十二章第11 条第1、2款规定,长度为150m及以上的散装船必须在1999年7月1日之前,配备国际海事 组织(頂0)认可的、可以提供船舶剪力和弯矩资料的配载仪器。
[0003] 配载仪除了具有强大的计算功能、友好的界面和直观的显示以提高配载人员的工 作效率外,显示船舶和货物图形的功能是必不可少的。清晰直观地显示船舶和舱室货物装 载量,能让配载人员全面整体认识船舶装载情况。现有的大多数配载仪都是以二维图示的 方式显示船舶和货物、应用AutoCAD等二次开发直接导入设计单位提供的图纸资料或者根 据相应的图纸资料进行绘制的。
[0004] 现有技术实现的方法如下:
[0005] 1、配载仪软件SafeLoad是七〇八研宄所自主开发的,其中图示是该软件的一大 特色。船舶视图应用AutoCAD二次开发,导入设计单位提供的完工装载手册和相应的图纸 资料,借助设计单位提供的总布置图或舱容图,来生成软件所需的图示图形。该软件中图示 从右舷侧视图、设计吃水处俯视图和船头侧视图三个视角来反映主要舱室的配载情况,而 且还保留了上层建筑、舱口盖和桅杆等增加图示的整体效果。在右舷侧视图中,各个舱室装 货高度以下部分显示紫红色,空舱部分是与底层同样的黑色显示,能够清楚地显示出各个 货舱货物装载量。右舷侧视图的下方显示的是右舷压载水舱,左舷压载水舱与右舷压载水 舱重合且位于右舷压载水舱后面,无法显示出来。该视图中有一条红线可以表示出船舶此 时的吃水。俯视图可以显示出压载水舱的位置,各压载水舱装载量标注的是一个百分比。船 头侧视图能够看出船舶的横倾和吃水。这种显示方式同样没有办法解决舱室之间的遮挡问 题,不能显示出所有的舱室,而且给配载人员的整体感不足,船舶和舱室显示真实感不够。 图1所示为配载仪软件SafeLoad的图示。
[0006] 2、配载仪软件DMULC6. 2是大连海事大学开发的,其中同样具有船舶的图示功能, 同样保留了上层建筑、舱口盖和桅杆等,增加了图示整体的效果。该软件中图示只有船舶右 舷的侧视图,各个舱室装货高度以下部分显示浅蓝色,空舱部分是白色的显示,这种方式能 够清晰地显示出船舶各个货舱的货物装载量。图示下方标注了船舶长度,视图中的一条红 线可以表示出船舶的吃水。这种显示方式同样没有办法解决舱室之间的遮挡问题,不能显 示出所有的舱室,而且给配载人员的整体感不足,船舶和舱室显示不够形象。图2所示为配 载仪软件DMULC6. 2的图示。
[0007] 3、配载仪软件0n-boardNAPA是芬兰NAPA公司开发的,图示功能也是该软件的一 大特色。图示的数据是船舶设计时三维模型数据,比较精确。该软件中图示从右舷侧视图、 从上往下的俯视图和从船底向上看的仰视图三个视角来反映主要舱室的配载情况,而且也 保留了上层建筑、舱口盖和桅杆等以增加图示的整体效果。从右舷侧视图可以看出货舱的 货物装载量,装货部分显示为紫红色,未装货部分与图示的底色相同,为黑色。该侧视图上 方对应标注了该舱室的ID等一些信息,从该船舶的俯视图和仰视图能够显示出除货舱之 外的其余几个舱室,但是由于视图数量的限制,这种显示方式同样没有办法解决舱室之间 的遮挡问题,不能显示出所有的舱室,而且给配载人员的整体感不足,船舶和舱室显示不够 形象。虽然该软件中有三维的舱室显示,但是该三维模块显示的只是整体的舱室,没有办法 显示出货物装载量、舱室相对于整个船舶的位置,而且也显示不出船舶的吃水、横倾、纵倾、 船舶视线等信息,也不能与用户进行交互。图3所示为配载仪软件On-boardNAPA的图示。
[0008] 上述相关技术存在的缺点如下:
[0009] 1、没有办法很好地解决舱室之间的遮挡问题,不能显示出所有舱室。
[0010] 2、没有办法精确地显示出所有舱室相对于整个船舶的位置、大小和形状,给用户 提供的整体感不足。
[0011] 3、二维视图仅仅作为显示,与用户的交互也只是点选,用户没有办法改变查看船 舶和舱室的角度。

【发明内容】

[0012] 为解决现有技术存在的上述问题,本发明要设计一种可以实现以下目的的散货船 配载仪的界面显示方法:
[0013] 1、船舶和舱室显示采用三维的显示方式,能够精确地显示出所有舱室相对于整个 船舶的位置、大小和形状,提供给用户一个较好的整体感。
[0014] 2、在三维显示模块中可以实现三维漫游,用户能够随意旋转、平移、缩放、点选、隐 藏舱室,用三维显示的方式解决二维视图中舱室之间的遮挡问题,显示出所有的舱室。
[0015] 3、显示出船舶吃水、横倾、纵倾等信息。
[0016] 4、精确的切割舱室的三维模型,把整个舱室切割为装载和未装载两个部分,分别 用蓝色和红色表示舱室装载部分和未装载部分。
[0017] 5、三维显示模块中船舶和各个舱室三维模型的显示配合用户的操作,能够高亮显 示出用户正在操作的一类舱室和单个舱室,可视化用户的操作。
[0018] 为了实现上述目的,本发明的技术方案如下:一种散货船配载仪中船舶三维图形 的显示方法,所述的散货船配载仪包括数据库、三维显示模块、计算模块和界面显示模块。 所述的数据库为计算模块和三维显示模块提供所需的船舶数据,所述的计算模块负责计算 装载瞬时船舶的稳性、强度和浮态,所述的三维显示模块配合用户操作显示配载过程中各 舱室货物装载量以及包括船舶吃水、横倾和纵倾的浮态信息的船舶整体三维模型,所述的 界面显示模块为用户提供操作界面。所述的船舶三维图形显示方法,包括以下步骤:
[0019] A、转换三维模型格式
[0020] 使用3ds Max建模软件打开从船舶设计单位得到的船舶和各个舱室精确的IGS格 式的三维模型文件,直接转换成Unity3D引擎能够识别的FBX格式。
[0021] B、制作三维模型资源文件
[0022] 使用Unity3D提供的BuildAssetBundleO函数,将由步骤A转换完成的船舶和各 个舱室的FBX格式的三维模型文件制作成Unity3D能动态加载的船舶和各个舱室的三维模 型资源文件。
[0023] C、Unity3D引擎发布的网页文件嵌入配载仪软件界面
[0024] 使用ActiveX技术把Unity web player插件嵌入配载仪软件界面。
[0025] D、动态加载船舶和各个舱室的三维模型资源
[0026] 使用Unity3D引擎提供的AssetBundle. LoadAll ()函数动态加载船舶和各个舱室 的三维模型资源文件。
[0027] E、切割舱室的三维模型
[0028] 按每个舱室货物的装载高度将该舱室的三维模型切割为两个部分,Unity3D中三 维模型是由三角网格构成的,三角网格为一个共享顶点和边的三角形列表,切割舱室的三 维模型就是切割舱室的三维模型的三角网格,然后重新组织为两个三角网格,实现对舱室 三维模型的切割。切割舱室的三维模型的方法如下:
[0029] E1、用三角形数组表示三角网格,设要进行切割的舱室的三角网格为三角形数组 T[n],每一个三角形对应包含三个顶点Dnl、Dn2和Dn3。
[0030] E2、设切割平面为平面p,遍历三角形数组T [n],利用向量叉乘的值分别判断三角 形的三个顶点在切割平面的哪一侧。根据结果把三角形分为三类:一类为三角形三个顶点 都在平面P的上方,记为三角形数组Up [n];第二类为三角形三个顶点都在平面p的下方, 记为三角形数组Dn[n];第三类为三角形三个顶点分布在平面p的两侧,记为三角形数组 C[n] 〇
[0031] E3、遍历三角形数组C[n]中的三角形,计算三角形的边与平面p相交的点,然后由 原三角形的三个点与相交的点重新组成三角形:
[0041] x01= x〇+(x1-x〇) ? Scale
[0042] y01= y 〇+(yry〇) ? Scale
[0043] z01= z 0+(z「z0) ? Scale
[0044] x02= x 0+(x2_x0) ? SScale
[0045] y〇2= y 〇+(y2-y〇) ? SScale
[0046] z02= z 0+(z2_z0) ? SScale
[0047] 把%、%、%;三个点组成的三角形添加到点%所在的那一侧三角形数组, 三个点组成的三角形和%、5、三个点组成的三角形都添加到异于点 斤在那一侧的三角形数组。三角形数组Up[n]和Dn[n]就是原舱室模型三角网格切割 之后生成的两个部分的三角网格,实现对舱室三维模型的切割。
[0048] 式中:$和$分别表示三角形数组C[n]中的三角形的三个顶点,xQ、yQ、zQ 分别表示点的X坐标、Y坐标、Z坐标,XpypZi分别表示点的X坐标、Y坐标、Z坐标, x2、y2、z2分别表示点的X坐标、Y坐标、Z坐标,xp、yp、zp分别表示点旧的X坐标、Y坐 标、Z坐标,xn、yn、zn分别表示点||的X坐标、Y坐标、Z坐标,y^、分别表示点?^的 X坐标、Y坐标、Z坐标,x%、y%、Za分别表示点;¥〇2丨的X坐标、Y坐标、Z坐标。其中与其 余两个顶点分布在切割平面P的两侧。是在切割平面P上的一点,$是切割平面P的法 线,Scale表不切割平面p与iVe、连线的交点分割线段所成的比例,SScale表不切
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1