一种空间坐标系下的高精度航迹点显示与控制方法与流程

文档序号:11953624阅读:711来源:国知局
一种空间坐标系下的高精度航迹点显示与控制方法与流程
本发明涉及计算机空间坐标系下的高精度图形显示处理,具体地说是一种空间坐标系下的高精度航迹点显示与控制方法。
背景技术
:在各种态势仿真与实时航迹处理信息系统中,通过雷达、卫星、电子侦察、传感器网络等多种电磁手段的位置探测、数据处理,将空中飞行的飞机、海面上航行的舰船、陆地上运动的车辆、空间轨道上的卫星等动目标,在三维场景中进行显示,在该过程中目标的位置离地心较远,对于传统的基于地心的世界坐标计算往往会带来精度上的丢失,导致图像抖动、显示位置出现偏差等问题。因此采用技术手段,对动目标采集的高精度航迹点进行位置连续、稳定的显示处理是表现目标物体运动过程的重要手段之一。通常情况下,在三维场景中,动目标轨迹的显示是将动目标运动中各点的经纬度位置转换为世界坐标位置,然后直接设置世界坐标与世界矩阵,通过底层图形平台的支撑进行绘制。但是,这种方法在实际应用过程中,存在着不可避免的位置偏移与图形抖动等问题,表现在三维透视投影模式下,当观察者与观察目标的距离发生变化时,目标轨迹显示不平滑,主要表现在航迹点位置不平稳,易产生抖动问题,位置与姿态在场景变化时会产生重叠与扭曲,特别是当目标轨迹中的点密度较高且姿态运动变化剧烈时,其轨迹显示会产生异常的抖动效果。为解决该问题,在工程实际应用中往往会通过提升数据处理精度,如将单精度的浮点数运算提升为双精度的浮点数运算等,这些方法会降低精度的丢失,但也不能完全避免精度丢失问题,且这种方法运算效率较低、系统开销较大。技术实现要素:发明目的:针对现有技术中存在的问题,本发明公开了一种空间坐标系下的高精度航迹点显示与控制方法,该方法基于航迹首点构建局部坐标系,对其余所有航迹点基于该局部坐标系进行位置偏移,达到小范围的局部坐标系处理效果,该方法有效的解决了大范围世界坐标系下高精度航迹点的图形显示抖动问题。技术方案:本发明公开了一种空间坐标系下的高精度航迹点显示与控制方法,包括如下步骤:(1)依次输入航迹点,并对航迹点按时间、位置与姿态进行优化;(2)计算世界坐标系下的基础坐标;(3)遍历优选后的航迹点列表,对航迹点进行坐标偏移处理,依次获取除首点外其他航迹点局部坐标;(4)通过底层渲染平台绘制航迹点图形。具体地,航迹点的信息包括时间、经度、纬度、高度、航向角、俯仰角和横滚角。步骤(1)中对航迹点按时间、位置与姿态进行优化的步骤如下:(11)遍历所有输入的航迹点,如果相邻的两个航迹点时间差小于0.1秒,摒弃其中一个航迹点;(12)遍历步骤(11)处理过后的所有剩余航迹点,如果相邻的两个航迹点时间差大于等于0.1秒,但同时满足以下条件1-3,则摒弃其中一个航迹点:条件1、相邻两个航迹点之间的航向角差小于0.1度;条件2、相邻两个航迹点之间的俯仰角差小于0.1度;条件3、相邻两个航迹点之间的横滚角差小于0.1度。步骤(2)中基础坐标为首点在世界坐标系下的坐标。步骤(3)中航迹点局部坐标的计算如下:(31)计算航迹点的世界坐标;(32)根据世界坐标系下的基础坐标和航迹点的世界坐标计算航迹点局部坐标。有益效果:与现有技术相比,本发明公开的空间坐标系下的高精度航迹点显示与控制方法的优点在于:1、对航迹点列表进行优化处理,摒弃一些不影响显示效果的航迹点,提高了后续图形显示与控制的效率;2、根据首点构建局部坐标系,其余所有航迹点据此做相对偏移,从而实现了局部处理效果;3、在图形显示上,对所有点设置公共的基础坐标,提升了整体绘制能力。附图说明图1是本发明的工作流程图;图2是实施例的输入航迹点示意图;图3是实施例的航迹点优化后的示意图;图4是实施例中的航迹点在世界坐标系下的示意图;图5是实施例中的航迹点在局部坐标系下的转换示意图;具体实施方式下面结合附图和具体实施方式,进一步阐明本发明。如图1所示,实现本发明的技术方案步骤如下:步骤1、依次输入N个航迹点,并对航迹点按时间、位置与姿态进行优化,摒弃不影响显示效果的点,从而提高处理效率。记航迹点信息数据结构为PointStruct,表达如下:PointStruct=(T,Lng,Lat,Alt,Yaw,Pitch,Roll),0≤i≤N-1,其中T表示该航迹点的时间,Lng表示该点的经度,Lat表示该点的纬度,Alt表示该点的高度,Yaw表示该点的航向角,Pitch表示该点的俯仰角,Roll表示该点的横滚角。如图2所示为输入的航迹点示意图。PointStructi表示第i个航迹点,将相邻的两个航迹点PointStructi与PointStructi-1进行如下比较:1、如两点之间的时间差小于0.1秒,即:|PointStructi.T-PointStructi-1.T|<0.1s,则将PointStructi摒弃;2、如两点之间的时间差大于等于0.1秒,但PointStructi与PointStructi-1在位置与姿态上同时满足以下条件则仍将PointStructi摒弃:条件1、两点之间的航向角差小于0.1度,即:|PointStructi.Yaw-PointStructi-1.Yaw|<0.1°;条件2、两点之间的俯仰角差小于0.1度,即:|PointStructi.Pitch-PointStructi-1.Pitch|<0.1°;条件3、两点之间的横滚角差小于0.1度,即:|PointStructi.Roll-PointStructi-1.Roll|<0.1°;遍历所有航迹点进行上述步骤处理,对剩余的航迹点重新编号,获得优化后的航迹点列表PointList:PointList={Point0,Point1,…,Pointj},其中Point表示航迹点,其信息数据结构与PointStruct相同;下标为航迹点序号,0≤j≤N-1,N为输入的航迹点数。优化后的航迹点列表中,相邻两个航迹点时间差大于等于0.1秒,且其航向角差、俯仰角差、横滚角差中至少有一个大于等于0.1度。如图3所示,为优化后的航迹点示意图。步骤2、根据优化后的第0个航迹点Point0,即首点,计算世界坐标系下的基础坐标Coorbase。记X0,Y0,Z0为首点在世界坐标系下的坐标值,即其世界坐标,计算方式如下:X0=(Point0.Alt+WorldRadius)*cos(Point0.Lat)*cos(Point0.Lng)Y0=(Point0.Alt+WorldRadius)*cos(Point0.Lat)*sin(Point0.Lng)Z0=WorldRadius*sin(Point0.Lat)上述各公式中WorldRadius表示地球半径,本发明中取值为6378137米。则世界坐标系下的基础坐标Coorbase为:Coorbase=(X0,Y0,Z0)。步骤3、遍历优选后的航迹点列表PointList,对所有的航迹点进行坐标偏移处理,依次获取除首点外其他航迹点局部坐标LocalCoork。首先,获取PointList中的航迹点Pointk,其中1≤k≤j,j+1为优化后的航迹点数,计算Pointk的世界坐标Coork。Coork=(X,Y,Z),其中X、Y、Z分别表示该点在世界坐标下的三个分量,则:Coork.X=(Pointk.Alt+WorldRadius)*cos(Pointk.Lat)*cos(Pointk.Lng)Coork.Y=(Pointk.Alt+WorldRadius)*cos(Pointk.Lat)*sin(Pointk.Lng)Coork.Z=WorldRadius*Sin(Pointk.Lat)]]>如图4所示,为航迹点在世界坐标系下的示意图。然后,根据Coorbase计算Pointk的相对局部坐标LocalCoork。LocalCoork=(x,y,z),其中x,y,z分别表示相对于首点的局部坐标下的三个分量,则:LocalCoork.x=Coork.X-Coorbase.XLocalCoork.y=Coork.Y-Coorbase.YLocalCoork.z=Coork.Z-Coorbase.Z]]>如图5所示,为航迹点在局部坐标系下的转换示意图。经过该步骤,获得转换后的局部航迹点列表LocalPointList:LocalPointList={LocalCoor0,LocalCoor1,…,LocalCoorj},其中0≤j≤N-1,N为输入的航迹点数。步骤4、通过底层渲染平台绘制航迹点图形。将LocalPointList输入到底层渲染平台中,则得出平稳的航迹点图形。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1