- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Graham算法飞行程序保护区边界画法
基于Graham算法飞行程序保护区边界画法
[摘 要]飞行程序保护区的辅助设计中,风螺旋线作为转弯机动的限制边界,其不规则性使得计算机难以精确绘制。文中对飞行程序保护区做出数学描述的同时引入Graham算法使得精确绘制不规则边界成为可能,并且对比以斜率作为参考的粗糙的算法做时间复杂度的对比分析,最终设计程序证实了算法的可行性和高效性,为飞行程序保护区自动绘制增添新的模型
[关键词]辅助设计;风螺旋线;Graham;时间复杂度
中图分类号:V323;TP311.11 文献标识码:A 文章编号:1009-914X(2017)22-0360-03
1 引言
飞行程序设计工作中,计算机辅助设计随着计算机科学和编程算法的发展已经广泛应用,主要集中在对保护区中障碍物判断以及保护区划设等方面。目前区域结构较为简单的进近程序和简化的离场程序都已经有了较为完整的辅助设计系统[1],开发方法虽然不同,但难度集中在保护区结构的准确数学描述,因此造成了编程时没有可以保证准确性的算法结构。飞行程序设计保护区的构型中以风螺旋线的位置特别且要求最严格,过去解决手段主要是直接调用编程语言相关函数[2]或者通过单点迭代利用直线拟合曲线进而以点对点关系构造相关区域[3],这些方法可以在一定程度上解决飞行程序设计工作中风螺旋线与其他图元之间的结构问题,不足在于由于需要调用特殊的函数无法在不同的开发环境中广泛使用,当某一个编程方法在飞行程序设计软件的开发功能上显得不足需要其他接口加入时,此类实现保护区划设的方法则不具备通用性。因此,建立合适的数学模型,从算法结构的角度解决飞行程序设计保护区中风螺旋线与多种图元相对关系是有必要实现的。
2 相关飞行程序
风螺旋线表示航空器转弯时每转过一定角度受到内风的影响形成的转弯偏移,图1所示为航空器绕中心圆点飞行90°生成的风螺旋线(wind spiral),在过去的手工绘图中通常以若干正圆为轮廓线,通过各轮廓间的拟合得到保守的近似覆盖最大范围的风螺旋线。近年来借鉴了机械,建筑领域中计算机制图“阿基米德螺旋线”的概念[4],遵循公式(1-1)可以将风螺旋线这样的极坐标曲线用极小步长生成。
根据民航飞行程序设计工作的标准规范DOC8168,基线转弯和直角程序中的保护区是在标称航迹的基础上,由相对的位置关系在一定的区域绘制转弯风螺旋线,再由风螺旋线构成的保护区边界区域生成包络线确保飞行保护区的安全性最高。图2为基线转弯保护区,图3(a)(b)为直角程序的模板及保护区生成过程。
这两种程序都是航空器做转弯机动时使用的飞行程序,因此存在大量转弯时需要确定的风螺旋线的边界,手工绘图中为了保证人工操作的误差不影响安全,采用圆近似替代风螺旋线的简易画法,虽然保守的保证了航空器的飞行安全但是无形中扩大了保护区范围造成一定的空域浪费。
3 算法设计
为了在空间中构造准确的飞行程序保护区边界,必须建立非描述性的边界曲线模型,利用地理坐标的定位实现对已知的程序航迹计算数学模型可以很好的解决航迹的建模[5],但对随着参数变化位置不确定的保护区边界,需要借鉴计算几何学的方法寻找各结构间的关系。要引入计算几何算法首先要引入点集的概念[6]。
3.1 二维空间的几何关系
在二维空间中,任意多边形P有N个顶点,这些顶点构成集合,称为顶点序列。这些点按照出现顺序排列为1,2…n,每一个顶点序列中的点均可用表示该点对应坐标。根据基线转弯程序与直角程序设计的特点,实现包络线是程序的关键。在几何学中,曲线族的包络线,是跟该曲线族的每条线都有至少一点相切的一条曲线。假设每条曲线为,设表示曲线与包络线相切的点,包络线为,要求出包络线转化为求出。
大的保?o余度而又不需要为了切点的准确改用简易画法绘制。
算法设计过程及简图如下:
①对所有点计算坐标,选取值最小点,若存在多个相等的点,选取最小的点,以此选出最下方(或左下)点作为基准点
②以水平轴方向为基准,逆时针方向,按照两点连接的线段与基准轴夹角的增大逐个扫描点,对于同样夹角下,只加入离基准点最远点的坐标,以此顺序形成点集
③先连接基准点与所有点中夹角最小距离最近点得到初始线段,以与点集中按顺序的下一点连接得另一线段
④按照平面坐标的计算方法,运算向量与向量的叉积,根据3.2节的向量关系,判断与的方向关系(图5(a))
⑤此处建立的坐标系是以最左下的点为基准,逆时针方向排列的点集,当其中一个向量与下一向量之间的关系为顺时针时,说明该处出现凹边,移除并从点集中去除点,进一步缩小点集规模(图5(b))
⑥只需要将中已保存的点按顺序执行回到基准点,剩余在点集中的点即为满足凸包的点集
Graham算法
原创力文档


文档评论(0)