发明名称 基于图像的航海模拟器视景中号灯显示方法
摘要 本发明提供一种基于图像的航海模拟器视景中号灯显示方法,该方法包括以下步骤:S1、通过号灯号型表确定船舶号灯的细节,并形成一张号灯列表;S2、根据船舶当前位置、航向,通过旋转、平移变换确定船舶任一号灯的准确位置,更新步骤S1中的号灯列表;S3、遍历更新后的号灯列表,判断确定需要显示的号灯,形成瞬时号灯显示列表;S4、遍历瞬时号灯显示列表,采用基于图像的方法绘制全部号灯。实施本发明,具有以下有益效果:通过在预定义矩形上贴号灯纹理图片,并对号灯显示的区域大小采用了去透视效果补偿,使所显示的号灯具有更强的真实感,由于采用了实时计算的方法判断是否应显示相应的号灯,使该方法更为简便、可靠。
申请公布号 CN102789739B 申请公布日期 2014.01.15
申请号 CN201210237614.2 申请日期 2012.07.10
申请人 大连海事大学 发明人 金一丞;尹勇;张显库;任鸿翔;张秀凤;刘秀文;任俊生;谷伟;张新宇;孙霄峰;肖方兵;神和龙
分类号 G09B29/10(2006.01)I;G09B9/06(2006.01)I 主分类号 G09B29/10(2006.01)I
代理机构 大连东方专利代理有限责任公司 21212 代理人 姜玉蓉;李洪福
主权项 1.一种基于图像的航海模拟器视景中号灯显示方法,其特征在于,包括以下步骤:S1、通过号灯号型表确定船舶号灯的细节,并形成一张号灯列表,号灯包括桅灯、舷灯、尾灯和环照灯;S2、根据船舶当前位置、航向,通过旋转、平移变换确定船舶任一号灯的准确位置,更新步骤S1中的号灯列表;S3、遍历更新后的号灯列表,判断确定需要显示的号灯,形成瞬时号灯显示列表;S4、遍历瞬时号灯显示列表,采用基于图像的方法绘制全部号灯;在步骤S3中确定需要显示的号灯,按照如下步骤进行:S31、根据船舶的每种号灯的水平位置(x<sub>l</sub>,y<sub>l</sub>)和其他船舶中观测者水平位置(x<sub>e</sub>,y<sub>e</sub>),求得船舶号灯水平位置至他船舶中观测者水平位置的单位矢量V<sub>le</sub>,<maths num="0001"><![CDATA[<math><mrow><msub><mi>V</mi><mi>le</mi></msub><mo>=</mo><mfrac><mrow><mo>[</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>l</mi></msub><mo>-</mo><msub><mi>x</mi><mi>e</mi></msub><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><msub><mi>y</mi><mi>l</mi></msub><mo>-</mo><msub><mi>y</mi><mi>e</mi></msub><mo>)</mo></mrow><mo>]</mo></mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>l</mi></msub><mo>-</mo><msub><mi>x</mi><mi>e</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>l</mi></msub><mo>-</mo><msub><mi>y</mi><mi>e</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mfrac><mo>,</mo></mrow></math>]]></maths>根据船舶航向角<img file="FDA0000407725780000012.GIF" wi="33" he="39" />计算航向矢量<img file="FDA0000407725780000013.GIF" wi="370" he="64" />求V<sub>le</sub>和V<sub>s</sub>的点积V<sub>le</sub>·V<sub>s</sub>,由余弦定理cosα=V<sub>le</sub>·V<sub>s</sub>可求出矢量V<sub>le</sub>和航向矢量V<sub>s</sub>的夹角α,α=arccos(V<sub>le</sub>·V<sub>s</sub>);S32、判断夹角α是否位于相应号灯的水平光弧范围内,如果位于号灯的水平光弧范围内,则进行步骤S33的判断;桅灯、舷灯、尾灯和环照灯的水平光弧范围从号灯号型表查询获取;S33、当夹角α满足步骤S32的条件时,再对该号灯的能见距离做比较判断,确定是否需要显示船舶的该号灯,从号灯号型表中获取灯光能见距离,若观测者与船舶间的距离小于或等于能见距离则应显示该船舶的该号灯,置判断结果为真;S34、结果为真,显示该号灯;结果为假,不显示该号灯;遍历全部号灯后形成瞬时号灯显示列表;在步骤S4中绘制全部号灯,按照如下步骤进行:S41、遍历瞬时号灯显示列表,采用广告板技术绘制号灯;S42、在需要绘制号灯的位置上定义一个预定义矩形,根据需要绘制的号灯与视点的距离确定预定义矩形的大小;S43、在预定义矩形上贴上号灯纹理图片。
地址 116026 辽宁省大连市高新园区凌海路1号