[发明专利]一种散货船配载仪中图示的显示方法有效

专利信息
申请号: 201510437985.9 申请日: 2015-07-23
公开(公告)号: CN104992470B 公开(公告)日: 2017-07-14
发明(设计)人: 张东洋;王麟;孙霄峰;施建华;尹勇;华玮;东昉;王军;刘春雷;杨博;金一丞;唐稳;张秀凤;倪银钢;刘秀文;神和龙;任鸿翔;吴海波 申请(专利权)人: 大连海事大学;上海船舶研究设计院
主分类号: G06T19/00 分类号: G06T19/00
代理公司: 大连东方专利代理有限责任公司21212 代理人: 李洪福
地址: 116026 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种散货船配载仪的界面显示方法,将从船舶设计单位获得的船舶和舱室的三维模型转化为三维可视化模块能够动态加载的资源文件,三维可视化模块加载船舶和舱室的三维模型资源到场景中进行显示,根据不同舱室的货物装载高度切割该舱室的三维模型,显示对应舱室的货物装载量。通过用户的操作,旋转、平移、缩放、消隐舱室的三维模型,切换三维可视化界面,孤立显示舱室三维模型,解决船舶和舱室之间的遮挡问题,提供给用户一个较为便捷的操作方式和直观的信息显示方式。本发明实现了精确地显示出所有舱室相对于整个船舶的位置、大小和形状,提供给用户较好的整体感。
搜索关键词: 一种 散货 配载 图示 显示 方法
【主权项】:
一种散货船配载仪中船舶三维图形的显示方法,所述的散货船配载仪包括数据库、三维显示模块、计算模块和界面显示模块;所述的数据库为计算模块和三维显示模块提供所需的船舶数据,所述的计算模块负责计算装载瞬时船舶的稳性、强度和浮态,所述的三维显示模块配合用户操作显示配载过程中各舱室货物装载量以及包括船舶吃水、横倾和纵倾的浮态信息的船舶整体三维模型,所述的界面显示模块为用户提供操作界面;其特征在于:所述的船舶三维图形显示方法,包括以下步骤:A、转换三维模型格式使用3ds Max建模软件打开从船舶设计单位得到的船舶和各个舱室精确的IGS格式的三维模型文件,直接转换成Unity3D引擎能够识别的FBX格式;B、制作三维模型资源文件使用Unity3D提供的BuildAssetBundle()函数,将由步骤A转换完成的船舶和各个舱室的FBX格式的三维模型文件制作成Unity3D能动态加载的船舶和各个舱室的三维模型资源文件;C、Unity3D引擎发布的网页文件嵌入配载仪软件界面使用ActiveX技术把Unity web player插件嵌入配载仪软件界面;D、动态加载船舶和各个舱室的三维模型资源使用Unity3D引擎提供的AssetBundle.LoadAll()函数动态加载船舶和各个舱室的三维模型资源文件;E、切割舱室的三维模型按每个舱室货物的装载高度将该舱室的三维模型切割为两个部分,Unity3D中三维模型是由三角网格构成的,三角网格为一个共享顶点和边的三角形列表,切割舱室的三维模型就是切割舱室的三维模型的三角网格,然后重新组织为两个三角网格,实现对舱室三维模型的切割;切割舱室的三维模型的方法如下:E1、用三角形数组表示三角网格,设要进行切割的舱室的三角网格为三角形数组T[n],每一个三角形对应包含三个顶点Dn1、Dn2和Dn3;E2、设切割平面为平面p,遍历三角形数组T[n],利用向量叉乘的值分别判断三角形的三个顶点在切割平面的哪一侧;根据结果把三角形分为三类:一类为三角形三个顶点都在平面p的上方,记为三角形数组Up[n];第二类为三角形三个顶点都在平面p的下方,记为三角形数组Dn[n];第三类为三角形三个顶点分布在平面p的两侧,记为三角形数组C[n];E3、遍历三角形数组C[n]中的三角形,计算三角形的边与平面p相交的点,然后由原三角形的三个点与相交的点重新组成三角形:V0→=(x0,y0,z0)]]>V1→=(x1,y1,z1)]]>V2→=(x2,y2,z3)]]>P→=(xp,yp,zp)]]>N→=(xn,yn,zn)]]>V01→=(x01,y01,z01)]]>V02→=(x02,y02,z02)]]>Scale=(P→-V0→)·N→(V1→-V0)→·N→]]>SScale=(P→-V0→)·N→(V2→-V0→)·N→]]>X01=X0+(X1‑X0)·ScaleY01=Y0+(Y1‑Y0)·ScaleZ01=Z0+(Z1‑Z0)·ScaleX02=X0+(X2‑X0)·SScaleY02=Y0+(Y2‑Y0)·SScaleZ02=Z0+(Z2‑Z0)·SScale把三个点组成的三角形添加到点所在的那一侧三角形数组,三个点组成的三角形和三个点组成的三角形都添加到异于点所在那一侧的三角形数组;三角形数组Up[n]和Dn[n]就是原舱室模型三角网格切割之后生成的两个部分的三角网格,实现对舱室三维模型的切割;式中:和分别表示三角形数组C[n]中的三角形的三个顶点,X0、Y0、Z0分别表示点的X坐标、Y坐标、Z坐标,X1、Y1、Z1分别表示点的X坐标、Y坐标、Z坐标,X2、Y2、Z2分别表示点的X坐标、Y坐标、Z坐标,Xp、Yp、Zp分别表示点的X坐标、Y坐标、Z坐标,Xn、Yn、Zn分别表示点的X坐标、Y坐标、Z坐标,X01、Y01、Z01分别表示点的X坐标、Y坐标、Z坐标,X02、Y02、Z02分别表示点的X坐标、Y坐标、Z坐标;其中与其余两个顶点分布在切割平面p的两侧;是在切割平面p上的一点,是切割平面p的法线的终点,Scale表示切割平面p与连线的交点分割线段所成的比例,SScale表示切割平面p与连线的交点分割线段所成的比例,表示切割平面p与连线的交点,表示切割平面p与连线的交点;F、设定舱室装货部分和未装货部分的显示颜色步骤E根据舱室的货物装载高度切割该舱室的三维模型,把舱室的三维模型切割为两个部分,分别用蓝色和红色表示舱室装货部分和未装货部分;G、显示船舶的吃水、横倾和纵倾变化后的船舶三维模型三维显示模块中初始设定的船舶和舱室三维模型中心的位置为V0=(0,0,0)、船舶三维模型的旋转角度为R0=(0,0,0)、水线面的位置Vs=(0,0,0);根据计算模块计算出来的船舶吃水d的值,通过Unity3D引擎提供的Transform.Translate()函数改变船舶三维模型的位置,改变之后船舶三维模型的位置为V1=Transform.Translate(0,d,0);根据计算模块计算出来的船舶横倾h和纵倾t的值,通过Unity3D引擎提供的Quaternion.Euler()函数改变船舶三维模型的旋转角度,改变之后船舶三维模型的旋转角度为Rg=Quaternion.Euler(h,t,0);此时,三维显示模块中显示出船舶吃水d、纵倾t、横倾h平移和旋转后的船舶三维模型;H、旋转显示船舶和舱室的三维模型三维显示模块中初始设定的船舶三维模型的旋转角度R0=(0,0,0),船舶和舱室三维模型中心的位置V0=(0,0,0);以V0为原点,检测鼠标的移动获得旋转角度的改变量;设绕X轴旋转角度的改变量为rx,绕Y轴旋转角度的改变量为ry,以rx和ry作为参数,使用Unity3D引擎提供的Quaternion.Euler()函数,计算获得旋转之后船舶三维模型的旋转角度Ri=Quaternion.Euler(ry,rx,0),三维显示模块以旋转角度Ri显示船舶三维模型;I、显示初始位置的船舶和舱室的三维模型当检测到键盘上的H键被按下时,三维显示模块中记录按下键盘上H键这一时刻船舶和舱室的三维模型的位置Vh=(xh,yh,zh),通过Unity3D引擎提供的Transform.Translate()函数改变船舶和舱室的三维模型的位置,即将船舶和舱室的三维模型的位置改变到Vh1=Transform.Translate(‑xh,‑yh,‑zh),此时船舶和舱室的三维模型回归于初始位置V0=(0,0,0);J、消隐或者显示船舶和舱室的三维模型当检测到用户要求隐藏船舶或舱室时,将Unity3D引擎提供的GetComponent<MeshRenderer>()函数的参数设为真;否则,将该函数的参数设为假。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连海事大学;上海船舶研究设计院,未经大连海事大学;上海船舶研究设计院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201510437985.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top