一种导航显示画面中航线转弯弧参数求解方法技术领域
本发明涉及一种飞机座舱显示系统中导航显示器上航线转弯弧的计算方法,本计
算方法可作为一个独立、可复用的软件模块嵌入在显示系统软件中使用。
背景技术
在飞机座舱显示系统的导航显示画面中,经常要显示飞机预先规划的航线信息。
航线中包含多个航路点(转弯点),如果用户不要求显示每个航路点的转弯弧,则可以直接
用直线连接相邻两个航路点,以构成完整的航线;如果用户要求显示飞机经过某个航路点
后、飞向下一个航路点的转弯弧,则需要确定该点转弯弧的绘制参数,包括转弯弧圆心、转
弯弧起始角度(进入点)和转弯弧结束角度(退出点)。每个航路点的转弯弧以及用直线段连
接某点的转弯弧退出点、下一点转弯弧进入点便构成了完整航线,连接两个转弯弧的直线
段需要与两个转弯弧都相切。
常见的转弯方式包括压点转弯、绕点转弯和向点转弯,此外,显示系统也可能指定
某一个点或几个点不需绘制转弯弧,而其他点则需要绘制转弯弧。
所谓压点转弯,就是飞机先飞过此航路点后,再开始向下一个航路点转弯。在这种
转弯方式中,航路点自身是转弯弧的进入点。
所谓绕点转弯,就是飞机在该点转弯时,不直接飞临该点上空,而是将该点作为转
弯弧的圆心。
所谓向点转弯,指的是飞机在经过此航路点时,先进行转弯,在航路点上完成转
弯,即该航路点是其转弯弧的退出点。
如果某航路点不需绘制转弯弧,则可认为此点的转弯弧半径为0,此点自身即是转
弯弧的圆心、进入点和退出点。
如果显示系统仅被告知了各航路点的位置和转弯方式、转弯方向及转弯半径,则
需根据这些参数确定出每个航路点转弯弧的圆心、进入点和退出点位置。本案给出了一种
满足要求的转弯弧计算方法。
发明内容
本发明的发明目的在于提供一种导航显示画面中航线转弯弧参数求解方法,该方
法计算简便,对系统性能影响小,能根据不同转弯点的转弯方式的组合情况准确求解各转
弯弧的圆心、起始角、终止角。
本发明的发明目的通过以下技术方案实现:
一种导航显示画面中航线转弯弧参数求解方法,包含以下步骤:
步骤1)、判断下一转弯点是否为压点转弯,如果是压点转弯点执行步骤2),否则执
行步骤6);
步骤2)判断当前转弯点是否为直接转弯,如果为直接转弯,则将当前转弯点作为
转弯弧的圆心、进入点、退出点,执行步骤16);如果不为直接转弯,执行步骤3);
步骤3)判断当前转弯点是否为压点转弯,如果是压点转弯则计算当前转弯点的转
弯弧的圆心和退出点,执行步骤16);如果不是压点转弯,执行步骤4);
步骤4)判断当前转弯点是否为绕点转弯,如果是绕点转弯,则计算当前转弯点的
转弯弧的退出点,执行步骤16);如果不是绕点转弯,则执行步骤5);
步骤5)判断当前转弯点是否为向点转弯,如果是向点转弯,则计算当前转弯点的
转弯弧的圆心,执行步骤16);
步骤6)、判断下一转弯点是否为绕点转弯,如果是绕点转弯,执行步骤7),如果不
是绕点转弯,执行步骤11);
步骤7)判断当前转弯点是否为直接转弯,如果是直接转弯,则计算下一转弯点的
转弯弧的进入点执行步骤16);如果不是直接转弯,执行步骤8);
步骤8)判断当前转弯点是否为压点转弯,如果是压点转弯,则计算当前转弯点的
转弯弧的圆心、退出点和下一转弯点的转弯弧的进入点,执行步骤16);如果不是压点转弯,
执行步骤9);
步骤9)判断当前转弯点是否为绕点转弯,如果是绕点转弯,则计算当前转弯点的
转弯弧的退出点,下一转弯点的转弯弧的进入点,执行步骤16);如果不是绕点转弯,执行步
骤10);
步骤10)、判断当前转弯点是否为向点转弯,如果是向点转弯,则计算下一转弯点
的转弯弧的进入点、当前转弯点的转弯弧的圆心,执行步骤16);
步骤11)、判断下一转弯点是否为向点转弯,如果是向点转弯,执行步骤12),如果
不是向点转弯,执行步骤16);
步骤12)判断下下一转弯点是否为直接转弯,如果是直接转弯,则计算下一转弯点
的转弯弧的圆心,执行步骤16),如果不是直接转弯,则执行步骤13);
步骤13)判断下下一转弯点是否为压点转弯,如果是压点转弯,则计算下一转弯点
的转弯弧的圆心,执行步骤16),如果不是压点转弯,则执行步骤14);
步骤14)判断下下一转弯点是否为绕点转弯,如果是绕点转弯,则计算下一转弯点
的转弯弧的圆心,执行步骤16),如果不是绕点转弯,则执行步骤15);
步骤15)判断下下一转弯点是否为压点转弯,如果为压点转弯,则计算下一转弯点
的转弯弧的圆心、下下一转弯点的转弯弧的进入点,执行步骤16);
步骤16)将下一转弯点作为当前转弯点,执行步骤1),直至获知各个转弯点的转弯
弧的圆心、进入点和退出点,绘制航线。
依据上述特征,所述步骤3)中计算当前转弯点的转弯弧的圆心和退出点的方法
为:
1)求解出当前转弯点相对于前一点转弯点的连线的方位角,记为α;
2)若当前转弯点的转弯方向为右转,则以相对于当前转弯点的方位角为β=α+90,
且与当前转弯点的距离为当前转弯点转弯半径的点作为当前转弯弧的圆心;
若当前转弯点的转弯方向为左转,则以相对于当前转弯点的方位角为β=α-90,且
与当前转弯点的距离为当前转弯点转弯半径的点作为当前转弯弧的圆心;
3)如果下一转弯点的转弯方向与当前转弯点相同,则计算当前转弯点的圆心相对
于下一转弯点的方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以当前转弯点的
圆心为射点,方位角为δ的射线与当前转弯点的转弯弧的交点,记为点s;逐点计算以下一转
弯点为射点,方位角为δ的射线与下一转弯点的转弯弧的交点,记为点r,若点r与点s的连线
与点s与点o垂直,则s点即为当前转弯点的转弯弧的退出点。
依据上述特征,所述步骤4)中计算当前转弯点的转弯弧的退出点的方法为:
1)求解出下一转弯点相对于当前转弯点的连线的方位角,记为α;
2)若当前转弯点的转弯方向为左转,则令β=α+n,n=0,1,2…90;逐点计算以当前
转弯点为射点、方位角为β的射线与当前转弯点的转弯弧的交点,记为r;
若当前转弯点的转弯方向为右转,则令β=α-n,n=1,2…90;逐点计算以当前转弯
点为射点、方位角为β的射线与当前转弯点的转弯弧的交点;
3)若当前转弯点与交点的连线与下一转弯点与交点的连线垂直,则此交点即为当
前转弯点的转弯弧的退出点。
依据上述特征,所述步骤5)中计算当前转弯点的转弯弧的圆心的方法为:
1)求解出当前转弯点相对于前一点转弯点的连线的方位角,记为α;
2)若当前转弯点的转弯方向为右转,则以相对于当前转弯点的方位角为β=α+90,
且距离为当前转弯点的转弯弧的半径为距离的点作为当前转弯点的圆心;
若当前转弯点的转弯方向为左转,则以相对于当前转弯点的方位角为β=α-90,且
距离为当前转弯点的转弯弧的半径为距离的点作为当前转弯点的圆心。
依据上述特征,所述步骤7)中计算下一转弯点的转弯弧的进入点的方法为:
1)求解出当前转弯点相对于下一转弯点的连线的方位角,记为α;
2)若下一转弯点的转弯方向为右转,则令β=α+n,n=0,1,2…90;逐点计算以下一
转弯点为射点、方位角为β射线与下一转弯点的转弯弧的交点;
若下一转弯点转弯方向为左转,则令β=α-n,n=1,2…90;逐点计算以下一转弯点
为射点、方位角为β的射线与下一转弯点的转弯弧的交点;
3)若当前转弯点与交点的连线与下一转弯点与交点的连线垂直,则此交点即为下
一转弯点的转弯弧的进入点。
依据上述特征,所述步骤8)中计算当前转弯点的转弯弧的圆心、退出点和下一转
弯点的转弯弧的进入点的方法为:
1)求解出当前转弯点相对于前一点转弯点的连线的方位角,记为α;
2)若当前转弯点的转弯方向为右转,则以相对于当前转弯点的方位角为β=α+90,
且与当前转弯点的距离为当前转弯点转弯半径的点作为当前转弯弧的圆心;
若当前转弯点的转弯方向为左转,则以相对于当前转弯点的方位角为β=α-90,且
与当前转弯点的距离为当前转弯点转弯半径的点作为当前转弯弧的圆心;
3)如果下一转弯点的转弯方向与当前转弯点相同,则计算当前转弯点的圆心相对
于下一转弯点的方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以当前转弯点的
圆心为射点,方位角为δ的射线与当前转弯点的转弯弧的交点,记为点s;逐点计算以下一转
弯点为射点,方位角为δ的射线与下一转弯点的转弯弧的交点,记为点r,若点r与点s的连线
与点s与点o垂直,则s点即为当前转弯点的转弯弧的退出点;r点即为下一转弯点的转弯弧
的进入点;
如果下一转弯点的转弯方向与当前转弯点不同,则计算圆点相对于下一转弯点的
方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以圆点为射点,方位角为δ的射线
与当前转弯点的转弯弧的交点,记为点s;逐点计算以下一转弯点为射点、方位角为δ+180度
的射线与下一转弯点转弯弧的交点,记为点r,若点r与点s的连线与点s与点o垂直,则s点即
为当前转弯点的转弯弧的退出点;r点即为下一转弯点的转弯弧的进入点。
依据上述特征,所述步骤9)中计算当前转弯点的转弯弧的退出点,下一转弯点的
转弯弧的进入点的方法为:
如果下一转弯点的转弯方向与当前转弯点相同,则计算当前转弯点的圆心相对于
下一转弯点的方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以当前转弯点的圆
心为射点,方位角为δ的射线与当前转弯点的转弯弧的交点,记为点s;逐点计算以下一转弯
点为射点,方位角为δ的射线与下一转弯点的转弯弧的交点,记为点r,若点r与点s的连线与
点s与点o垂直,则s点即为当前转弯点的转弯弧的退出点;r点即为下一转弯点的转弯弧的
进入点;
如果下一转弯点的转弯方向与当前转弯点不同,则计算圆点相对于下一转弯点的
方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以圆点为射点,方位角为δ的射线
与当前转弯点的转弯弧的交点,记为点s;逐点计算以下一转弯点为射点、方位角为δ+180度
的射线与下一转弯点转弯弧的交点,记为点r,若点r与点s的连线与点s与点o垂直,则s点即
为当前转弯点的转弯弧的退出点;r点即为下一转弯点的转弯弧的进入点。
依据上述特征,所述步骤10)中计算下一转弯点的转弯弧的进入点、当前转弯点的
转弯弧的圆心的方法为:
1)若当前转弯点的转弯方向为右转,且下一转弯点的转弯方向也是右转,则:计算
出当前转弯点相对于下一转弯点的方位角,记作α,令β=α+n,n=1,2,…90,逐点计算以下
一转弯点为射点、方位角为β的射线与下一转弯点的转弯弧的交点,记为点p,若点p与当前
转弯点的连线与点p与下一转弯点的连线垂直,则p点即为下一转弯点的转弯弧的进入点;
记当前转弯点相对于下一转弯点的转弯弧的进入点的方位角为γ,则以相对于当前转弯点
的方位角为γ-90度,距离为当前转弯点的转弯弧半径的点为当前转弯点的圆心;
2)若当前转弯点的转弯方向为右转,而下一转弯点的转弯方向为左转,则:计算出
当前转弯点相对于下一转弯点的方位角,记作α,令β=α-n,n=1,2,…90,逐点计算以下一
转弯点为射点、方位角为β的射线与下一转弯点的转弯弧的交点,记为点p,若点p与当前转
弯点的连线与点p与下一转弯点的连线垂直,则p点即为下一转弯点的转弯弧的进入点;记
当前转弯点相对于下一转弯点的转弯弧的进入点的方位角为γ,则以相对于当前转弯点的
方位角为γ-90度,距离为当前转弯点的转弯弧半径的点为当前转弯点的圆心;
3)若当前转弯点的转弯方向为左转,且下一转弯点的转弯方向是右转,则:计算出
当前转弯点相对于下一转弯点的方位角,记作α,令β=α+n,n=1,2,…90,逐点计算以下一
转弯点为射点、方位角为β的射线与下一转弯点的转弯弧的交点,记为点p,若点p与当前转
弯点的连线与点p与下一转弯点的连线垂直,则p点即为下一转弯点的转弯弧的进入点;记
当前转弯点相对于下一转弯点的转弯弧的进入点的方位角为γ,则以相对于当前转弯点的
方位角为γ+90度,距离为当前转弯点的转弯弧半径的点为当前转弯点的圆心;
4)若当前转弯点的转弯方向为左转,而下一转弯点的转弯方向也为左转,则:计算
出当前转弯点相对于下一转弯点的方位角,记作α,令β=α-n,n=1,2,…90,逐点计算以下
一转弯点为射点、方位角为β的射线与下一转弯点的转弯弧的交点,记为点p,若点p与当前
转弯点的连线与点p与下一转弯点的连线垂直,则p点即为下一转弯点的转弯弧的进入点;
记当前转弯点相对于下一转弯点的转弯弧的进入点的方位角为γ,则以相对于当前转弯点
的方位角为γ+90度,距离为当前转弯点的转弯弧半径的点为当前转弯点的圆心。
本发明提出了一种飞机座舱显示系统导航显示画面中航线转弯弧参数求解方法,
该方法充分考虑了各种转弯方式、转弯方向的航路点组合情况,能根据不同的组合要求,根
据航路点的位置、转弯方向和转弯方式、转弯半径,准确求解各转弯弧的圆心、进入点和退
出点,满足航线绘制需求。该算法计算简便,对系统性能影响很小,适于在嵌入式实时系统
或仿真系统中推广使用。
附图说明
图1为直接转弯到绕点转弯的参数求解的示意图;
图2为压点转弯到绕点转弯的参数求解的示意图(转弯方向相同);
图3为压点转弯到绕点转弯的参数求解的示意图(转弯方向不相同);
图4为向点转弯到绕点转弯的参数求解的示意图(转弯方向相同);
图5为向点转弯到绕点转弯的参数求解的示意图(转弯方向不相同);
图6为本发明的流程示意图。
具体实施方式
下面结合附图和实施例,对本发明作进一步的详细描述。
如上文所述,导航显示画面中,常见的航线航路点转弯方式有四种:压电转弯、绕
点转弯、向点转弯和直接转弯(直接转弯不需在导航画面中绘制转弯弧),这四种转弯方式
可自由组合,本发明保证在一条航线中任意两个相邻航路点,不论采用何种转弯方式,都能
正确求解出转弯弧参数。
假设i-1点、i点和i+1点是航线中三个相邻的航路点,现在要求解i点的转弯弧参
数,求解转弯弧参数的关键是确定其圆心。可对不同转弯方式的航路点的转弯弧参数求解
过程分析如下:
1)若i点的转弯方式是压点转弯,则i点即是其转弯弧的进入点,而根据i-1点转弯
弧的退出点与i点连线的方位角,结合i点转弯半径,可确定i点转弯弧的圆心位置,再根据i
+1点的转弯方式可确定i点转弯弧的退出点。也就是说需要根据上一点的参数确定本点转
弯弧的圆心;
2)若i点的转弯方式是绕点转弯,则i点自身就是其转弯弧的圆心,过i-1点转弯弧
退出点、且与i点转弯弧相切的切线有两条,其中一条切线的切点即是i点转弯弧的进入点
(需在算法中确定正确的切点);再根据i+1点转弯方式可确定i点转弯弧的退出点。也就是
说本点转弯弧圆心已知,不需求解;
3)若i点的转弯方式是向点转弯,则i点是其转弯弧的退出点,根据i-1点的转弯弧
参数,并不能确定i点转弯弧圆心。需要先确定i+1点转弯弧的进入点,根据i+1点转弯弧进
入点与i点连线的方位角以及i点转弯半径,才能确定i点转弯弧的圆心。也就是说i点转弯
弧的圆心需要通过i+1点转弯参数确定,如果i+1航路点仍然是向点转弯,则需先根据i+2点
转弯参数确定i+1点转弯弧圆心及进入点,再确定i点转弯弧圆心。
若i点为转弯方式是直接转弯,不需画转弯弧,则将i点视作该点转弯弧的圆心、进
入点和结束点。
根据以上分析,在求解各转弯弧参数过程中,先遍历航线中各转弯点,根据各点的
转弯方式,确定各点转弯弧参数的求解顺序。若某转弯点转弯方式是压点转弯或绕点转弯,
则该点的转弯圆心可由上一个转弯点参数确定,故可采用从前向后的顺序求解各点转弯参
数;若某转弯点转弯方式是向点转弯,则该点的转弯圆心必须由下一个转弯点参数确定,故
应采用从后向前的顺序求解各点转弯参数。
如图6所示,本计算方法执行过程:
本计算方法的执行过程可用C风格PDL描述:
对不同转弯方式的航路点的转弯弧参数求解过程具体如下:
情况一:直接转弯航路点到绕点转弯航路点的转弯弧参数求解方法
假设i点为直接转弯航路点,不需绘制转弯弧,则可认为i点转弯弧半径为0,转弯
弧的进入点、退出点和圆心都是i点本身。i+1点是绕点转弯,则i+1点转弯弧的圆心是它自
身,如图1所示,则:
1)求解出i点相对于i+1点的连线的方位角,记为α(单位为度,0度指向正上方,下
同);
2)若i+1点转弯方向为右转(如图1),则令β=α+n,n=0,1,2…90;逐点计算以i+1
点为射点、方位角为β的射线与转弯弧的交点,记为r;
若i+1点转弯方向为左转,则令β=α-n,n=1,2…90;逐点计算以i+1点为射点、方
位角为β的射线与转弯弧的交点,记为r;
3)若直线ri与直线r(i+1)垂直,则此点即为所求解的i+1点转弯弧的进入点,记为
p点。
情况二、压点转弯弧到绕点转弯弧转弯参数的求解方法
假设i点是压点转弯,i+1点是绕点转弯,则i点本身即i点转弯弧的进入点,将i-1
点的转弯弧退出点记为m。则:
1)用直线连接m点和i点,计算i点相对于m点的方位角,记为α;
2)根据i点转弯方向,确定i点转弯弧圆心位置。假设i点转弯方向为右转,且转弯
半径为R1,如图二所示,令β=α+90,则相对于i点方位角为β,且距离为R1的点,即为i点转弯
弧的圆心,记为o;若i点转弯方向为左转,则令β=α-90,用同样方法可确定圆心;
3)如果i+1点转弯方向与i点相同,如图2所示(都是右转弯),则计算o点相对于i+1
点的方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以点o为射点,方位角为δ的射
线与i点转弯弧的交点,记为点s;逐点计算以i+1点为射点,方位角为δ的射线与i+1点转弯
弧的交点,记为点r,若直线rs与直线so垂直,则s点即为i点转弯弧的退出点,记为p点;r点
即为i+1点转弯弧的进入点,记为q点;
4)如果i+1点转弯方向与i点不同,如图3所示(i点右转,而i+1点左转),则计算o点
相对于i+1点的方位角,记作γ;令δ=γ+n,n=0,1,2,3…180,逐点计算以点o为射点,方位
角为δ的射线与i点转弯弧的交点,记为点s;逐点计算以i+1点为射点、方位角为δ+180度的
射线与i+1点转弯弧的交点,记为点r,若直线rs与直线so垂直,则s点即为i点转弯弧的退出
点,记为p点;r点即为i+1点转弯弧的进入点,记为q点;
5)若i点转弯方向为左转,则可按相同方法求解转弯弧参数。
情况三、向点转弯到绕点转弯弧参数求解
若i点是向点转弯,i+1点是绕点转弯,则i+1点转弯弧的圆心即i+1点本身,而i点
是i点转弯弧的退出点,在求解过程中,需先确定i+1点转弯弧的进入点,再确定i点转弯弧
的圆心位置。假设已知i点转弯半径为R1。
1)若i点转弯方向为右转,且i+1点转弯方向也是右转,如图四所示。则:计算出i点
相对于i+1点的方位角,记作α,令β=α+n,n=1,2,…90,逐点计算以i+1点为射点、方位角为
β的射线与i+1点转弯弧的交点,记为点p,若直线pi与直线p(i+1)垂直,则p点即为所要求解
的i+1点转弯弧的进入点;记i点相对于p点的方位角为γ,由于i点转弯方向为右转,所以相
对于i点方位角为γ-90度,距离为R1的点即是i点转弯弧的圆心,图4中记为o点;
2)若i点转弯方向为右转,而i+1点转弯方向为左转,如图五所示。则:计算出i点相
对于i+1点的方位角,记作α,令β=α-n,n=1,2,…90,逐点计算以i+1点为射点、方位角为β
的射线与i+1点转弯弧的交点,记为点p,若直线pi与直线p(i+1)垂直,则p点即为所要求解
的i+1点转弯弧的进入点;记i点相对于p点的方位角为γ,由于i点转弯方向为右转,所以相
对于i点方位角为γ-90度,距离为R1的点即是i点转弯弧的圆心,图5中记为o点;
3)若i点转弯方向为左转,可依据i+1点转弯方向不同(左转或右转)分别按照1)、
2)中的方法确定i点转弯弧圆心o,只是点o相对于点i的方位角是γ+90。
5.其他转弯方式从、到点组合的转弯弧求解方法
其他类型转弯方式的从、到点组合的转弯弧参数求解可用以上三种之一的方法完
成,只不过转弯弧的圆心确定方式不同,如表1所列。
表1
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发
明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保
护范围。