当前位置: 首页 > news >正文

如何判断两架飞机在汇聚飞行?(如何计算两架飞机的航向夹角?)内含程序源码

ok,在开始一切之前,让我先猜一猜,你是不是想百度“二维平面下如何计算两个移动物体的航向夹角?”如果是,那就请继续往下看。

首先,我们要明确一个概念:航向角≠航向夹角!!!!!!我说的是航向夹角,我可跟那** 百度不一样,*百度一搜航向夹角,全**弹出来的是航向角。

Angle Off”(夹角)是用来描述一架飞机与另一架的优势或劣势关系的术语。 是你和敌机航向之间的夹角,用度为单位表示。如果你敌机之间的航向一致,那么你的夹角就是 0°;而 90°夹角就说明你垂直于敌机。夹角也被称之为 HCA(航向夹角 Heading Crossing Angle)。
在这里插入图片描述

什么是汇聚飞行?

在这里插入图片描述
上图即为汇聚飞行示意图,红色的箭头是飞机飞行的速度方向。

什么是分散飞行?

在这里插入图片描述

上图即为分散飞行示意图,红色的箭头是飞机飞行的速度方向。

OK!!我们的标题是——如何判断两架飞机在汇聚飞行?答案是:请告诉我你两架飞机的飞行坐标(x,y)以及你两架飞机的飞行速度(V_x,V_y)!!

路人:飞机,飞机,都飞起来了,你这飞机怎么没有高度z和z轴的速度的?

我:我把3维的空间全当做二维的平面处理了,这篇博客全都是从二维平面的角度出发的。因为3维变二维可以大大简化我的工作量,3维会导致我猪脑过载,猪脑的CPU容易冒烟,望李姐。

路人:只给两架飞机的速度信息(V_x,V_y),还不能判断飞机是在汇聚还是在分散飞行吗?

我:不能。因为,如下:
在这里插入图片描述

上图中,飞机的航向夹角都是45°,但是由于飞行起点的不同,左边的两架飞机是在汇聚飞行,将交于一点,而右边的两架飞机则是在分散飞行,它们只会越飞越远。

使用我下面给出的这一段python程序,就能判断出两架飞机是在汇聚还是在分散飞行,并且能得到两架飞机的航向夹角。函数的输入参数是:飞机一的坐标(x,y),速度(vx,vy),飞机二的坐标(X,Y),速度(Vx,Vy),航向夹角可以根据高中数学课本中的两矢量夹角公式求得:
在这里插入图片描述

而关于飞机汇聚飞行和分散飞行的判断,我的处理方法是:计算当前时刻k下两架飞机的二范数,再计算下一时刻k+1下两架飞机的二范数,如果当前时刻的范数大于下一时刻的范数,就意味着两架飞机越飞越近,就是汇聚飞行,反之亦然。

至此,代码如下,拿走不谢,复制即用,不行砍我!

import math
x,y,vx,vy=0,0,1,0#飞机一参数
X,Y,Vx,Vy=0,-1,1,1#飞机二参数def ddd(x,y,vx,vy,X,Y,Vx,Vy):angle=math.acos((vx*Vx+vy*Vy)/(math.hypot(vx,vy)*math.hypot(Vx,Vy)))*180/math.pidis1=math.hypot((x-X),(y-Y))dis2=math.hypot((x+vx)-(X+Vx),(y+vy)-(Y+Vy))if dis1>dis2:print('汇聚')elif dis1<dis2:print('分散')else:print('静止没变')print('航向夹角:',angle)ddd(x,y,vx,vy,X,Y,Vx,Vy)

演示结果如下:
在这里插入图片描述

参考文献:
知乎的一篇文章
一篇硕士学位论文

http://www.lryc.cn/news/4336.html

相关文章:

  • Scipy稀疏矩阵bsr_array
  • LeetCode笔记:Weekly Contest 332
  • autox.js在vscode(win7)与雷神模拟器上的开发环境配置
  • 创建阿里云物联网平台
  • 【链式二叉树】数据结构链式二叉树的(万字详解)
  • Koa2篇-简单介绍及使用
  • Linux ALSA 之十一:ALSA ASOC Path 完整路径追踪
  • 【Spring Cloud总结】1、服务提供者与服务消费者快速上手
  • 若依项目学习之登录生成验证码
  • 计算机网络5:数据在两台计算机之间是怎样传输的?
  • 就现在!为元宇宙和Web3对互联网的改造做准备!
  • 【mysql数据库】
  • 【测试开发】web 自动化测试 --- selenium4
  • Elasticsearch7.8.0版本进阶——路由计算
  • c#反射-获取属性和字段的值
  • 前后端分离-小项目-1前端布局
  • 基于jsp的网络电子相册的设计与实现
  • Python快速上手系列--类--详解篇
  • Dubbo基本原理和用法讲解
  • TCP详解及面试相关问题
  • LVGL V9.0基于VS2022仿真搭建
  • 多线程面试题开胃菜2(5道)
  • 第三次作业
  • 基础算法(直接插入,希尔排序,快排,归并,折半查找)
  • 电子学会2022年12月青少年软件编程(图形化)等级考试试卷(一级)答案解析
  • 基于JAVA的超级玛丽设计与实现
  • 硬件工程师入门基础知识(一)基础元器件认识(二)
  • Python-项目实战--贪吃蛇小游戏-游戏框架搭建(2)
  • JVM基础
  • Android 内存优化(基础轮)必看~