根据卫星的方位角和仰角画卫星星空图(QT实现)
作者:haomingHu
email:hhm_master@163.com
需求:在0183格式中,根据GNGSV中的卫星仰角和方位角去绘制卫星星空图
如图:
目标:实现一个卫星的映射
名词解释:
方位角:从标准方向的北端起,顺时针方向到直线的水平角称为该直线的方位角。方位角的取值范围为0°~360°。,就是卫星相 对于测量点的方向,正北方向为0 度,顺时针递增。
仰角: 视线在水平线以上时,在视线所在的垂直平面内,视线与水平线所成的角叫做仰角.就是在地平面上,要抬头多少度,才能望到卫星,水平方向为 0 度,头顶的垂直方向为 90 度。
elevation:仰角 、(0-90)azimuth:方位角(0-360)
先用QT画一个圆环
代码如下:
painter.translate(180,180);//坐标变换 //y轴向下边为正方向painter.setRenderHint(QPainter::Antialiasing, true);painter.setPen(QPen(QColor("#98F5FF"), 2));painter.setBrush(QColor( 255 ,250 ,250));painter.drawEllipse(QPointF(0, 0), 180, 180);painter.setPen(QPen(QColor("#76EEC6"), 2));painter.setBrush(QColor( 255 ,250 ,250));painter.drawEllipse(QPointF(0, 0), 120, 120);painter.setPen(QPen(QColor("#FFE4B5"), 2));painter.setBrush(QColor( 255 ,250 ,250));painter.drawEllipse(QPointF(0, 0), 60, 60);painter.setPen(QPen(QColor("#696969"), 3));painter.drawLine(QPointF(0, 180), QPointF(0,-180));painter.drawLine(QPointF(-180,0), QPointF(180,0));
这里需要注意,一定要将坐标原点搬到圆心,否则等下画的卫星就不正确了。坐标平移使用到的函数是:translate
参数为原来坐标系统的圆心坐标,而且平移之后y轴的正方向向下
现在给定参数:
int elevation =35;int azimuth =33;
计算过程:
int elevation =35;int azimuth =33;int cosLen = cos(elevation*3.141592/180)*180;int y = cos(azimuth*3.141592/180)*cosLen;int x = sin(azimuth*3.141592/180)*cosLen;qDebug()<< x<<y<<cosLen;painter.setPen(QPen(QColor("#FF0000"), 2));painter.setBrush(QColor("#FFFAFA"));painter.drawEllipse(QPointF(x,-y),10,10);painter.setBrush(QColor(255,48,48));painter.drawText(QPointF(x-9,-y+5),"13");
最终效果:
计算过程解释:
int elevation =35;
int azimuth =33;
int cosLen = cos(elevation*3.141592/180)180;
int y = cos(azimuth3.141592/180)cosLen;
int x = sin(azimuth3.141592/180)*cosLen;
int cosLen = cos(elevation*3.141592/180)*180; 这个是使用仰角计算卫星投射到X-Y平面的点,距离远点的距离
int y = cos(azimuth*3.141592/180)cosLen;
int x = sin(azimuth3.141592/180)*cosLen;
这两个则是用这个距离分别计算投影到X-Y轴的距离。
首先假设空间中的卫星和三维坐标系的原点组成一个向量,方位角可以理解为先将这个向量投影到X-Y面,然后得到的新向量与Y轴的夹角,因为三维坐标系绕着X轴转到90°,Z轴和Y轴是重合,所以就可以用正余弦关系计算出最终的二维平面坐标
根据卫星的方位角和仰角画卫星星空图(QT实现)相关推荐
- 什么是卫星天线方位角、仰角和极化角
什么是卫星天线方位角.仰角和极化角 1 .方位角:通常我们通过计算软件或在资料中得到的结果应该是以正南方向为标准,将卫星天线的指向偏东或偏西调整一个角度,该角度即是所谓的方位角.至于到底是偏东还是偏西 ...
- js实现卫星天线方位角和仰角
参数含义: SATLONG:经度 SATLAT:维度 function CalculateAZ(SATLONG,SATLAT) {var DTOR, RTOD, A, B, F, RSAT, ESHE ...
- 北斗导航 | 获取观测卫星的位置信息,并绘制卫星的方位角和仰角得到星空图:GSV语句(附Matlab源代码)
================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...
- cesium学习 之 Entity 画卫星轨道 (一)
cesium学习 之 Entity 画卫星轨道 (一) 最近公司想做个卫星轨迹展示大屏,原型图看上去确实比较逼真,然后我就惨了,开始学习cesium,满满的English文档,看着头大. B站上面有入 ...
- 卫星伪距定位matlab,GPS卫星运动及定位matlab仿真.doc
书山有路勤为径! PAGE GPS卫星运动及定位matlab仿真 摘要 全球定位系统是具有全球性.全能性.全天候优势的导航定位.定时和测速系统,现在在全球很多领域获得了应用. GPS卫星的定位是一个比 ...
- GPS卫星坐标用计算机计算,GPS卫星位置的计算
[摘 要]针对GPS卫星导航电文的特点和里边各种参数含义及用法,阐述了利用导航电文提供的数据计算卫星位置的方法,为进行基线解算时提供准确的卫星坐标数据. 0前言 全球卫星定位系统(GPS)是一个实时的 ...
- GPS坐标的确立,GPS卫星在太空的位置,卫星参数
1.GPS卫星的位置 在GPS的定位过程中,确定卫星在空间的位置是至关重要的,尤其是用户机测量信号从卫星发射的那个时刻的卫星位置,这需要从卫星广播的导航电文取出卫星轨道星历,计算卫星当时的实际位置. ...
- 北斗/GPS卫星时钟系统(北斗/GPS卫星授时系统-北斗/GPS卫星校时系统)
北斗/GPS卫星时钟系统(北斗/GPS卫星授时系统-北斗/GPS卫星校时系统) 北斗/GPS卫星时钟系统(北斗/GPS卫星授时系统-北斗/GPS卫星校时系统) 技术交流-岳峰-15901092122: ...
- Matlab:实现返回所有波束的方位角和仰角对(附完整源码)
Matlab:实现返回所有波束的方位角和仰角对 function beamAng = hGetBeamSweepAngles(numBeams,azSweepRange,elSweepRange,az ...
最新文章
- 计算机硬件系统公开课课件,计算机硬件系统的组成(公开课).ppt.ppt
- Oracle中的 IN, NOT IN和 EXISTS, NOT EXISTS的區別
- R语言广义线性模型Logistic回归模型列线图分析(nomogram)
- TrackID识别音乐的应用不能用了
- Android IOC模块,利用了Java反射和Java注解
- Windbg dump分析 学习总结
- 51系列中data,idata,xdata,pdata的区别[笔记]
- 服务器系统生产厂家,生产云服务器厂家
- 数据结构 | 如何一文搞定链表问题?(附20本书获奖名单)
- resin常见有关问题
- java没有释放内存_java – G1年轻的GC没有释放内存 – 空间耗尽
- TZOJ 3030 Courses(二分图匹配)
- leetcode954. 二倍数对数组(treemap)
- NSURLCache缓存使用简介
- android 函数名注册,Android JNI 函数注册的两种方式(静态注册/动态注册)
- 如何快速合并PDF文件?几个方法教你合并PDF
- 基于cocos-2dx的游戏制作——I wanna save the princess
- 迁移学习癌医学影像检测
- win xp使用技巧
- Mac终端自动补全及常用命令