绘制卫星视图的圆,标记方位角

void skyViewer::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing,true);painter.setPen(Qt::green);// 绘制圆painter.drawEllipse(centerPoint,mRadius,mRadius);painter.drawEllipse(centerPoint,mRadius/2,mRadius/2);// 画刻度QPen &pen = const_cast<QPen&>(painter.pen());pen.setStyle(Qt::DotLine);pen.setColor(Qt::green);painter.setPen(pen);QFontMetrics m(painter.font());for(int i=0;i<360;i+=30){QPointF pt = trans(i, centerPoint, mRadius);painter.drawLine(centerPoint, pt); // 绘制两点构成的线段QString strText = QString::number(i); // 将数字转成字符串// 坐标原点和坐标系保存下来,不受坐标平移和旋转的影响,只需要restore就可以恢复了painter.save(); QSize nSize = m.size(Qt::TextSingleLine , strText); // 字符串的长度和宽度像素值//【1】偏移坐标原点到需要绘制刻度的位置painter.translate(pt);//【2】旋转坐标系到指定的角度painter.rotate(i);//【3】 画刻度// 平移旋转后,原点所在位置即是字体左下角的位置
//        painter.drawText(QPoint(0,0), strText.append("°")); // 将线段指向字符串中间,所以需要左移到原点的坐标painter.drawText(QPoint(-nSize.width()/2,nSize.height()/2),strText.append("°"));    painter.restore();}
}
// 找到线段的另一个端点坐标位置,R为圆的半径,center为原点坐标
QPointF skyViewer::trans(int angle, QPointF center, qreal R)
{QPointF pt(center);float rad = DegreesToRadians(static_cast<float>(angle));pt.setX(center.x() + R * qSin(static_cast<qreal>(rad)));pt.setY(center.y() - R * qCos(static_cast<qreal>(rad)));return pt;
}
// 度转化成弧度
qreal skyViewer::DegreesToRadians(float angle)
{return angle*M_PI/180;
}

效果图

Qt绘制星空图及卫星视图坐标相关推荐

  1. Qt绘制雷达图(卫星轨迹图)

    效果图 功能 使用QPainter绘制,雷达图主要包括,同心圆.十字架.刻度.不同颜色的圆圈. 可以设置卫星的俯仰角,方位角,程序采用系统与卫星的结合,多种系统,n个卫星数据,进行显示,可自行搭配数据 ...

  2. QT 绘制贝塞尔曲线,并且获得曲线上的点的坐标

    贝塞尔曲线的几个步骤 1.起始点 2.控制点 3.控制点 4.结束点 附上下图(网上找的) 利用QT绘制曲线然后通过定时器遍历整条曲线,先看一下效果: 实现代码: #pragma once #incl ...

  3. Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/117660217 长期持续带来更多项目与技术分享,咨询请 ...

  4. qt绘制一圈圆_Qt绘制圆

    最近开始折腾Qt了,手头上的一个项目需要用到Qt来绘制一些简单图像. 记录下Qt绘制圆的过程: 对于以A为圆心,半径为R的圆,外部有一个外切的正方形,正方形上有B点.如下图所示: 对于void QPa ...

  5. QT绘制多边形-----五边形

    *QT绘制多边形 今天学习qt绘制多边形的绘制 1.先创建一个新项目Application->Qt Widgets Application 2.在头文件.h添加: protected: //在保 ...

  6. Qt学习(一)模型与视图

    QT中的模型与视图是一种架构,一种框架,与MVC框架类似,他目的是使得数据与界面相互分离 首先介绍MVC: MVC作为一种可视化方法:三个字母分别代表(model)模型-(view)视图-(contr ...

  7. Qt绘制旋转的轮播图

    前言 目前见的比较多的轮播图有平移和旋转两种方式.平移类似淘宝那种切换幻灯片一样的效果,旋转一般是近大远小,看起来有点3D的感觉.本文代码实现旋转轮播图效果如下: 完整代码链接: https://gi ...

  8. 如何用Qt绘制一颗好看的二叉树

    原创~~作者码字不易,如需转载请注明出处,谢谢~ 欢迎来我的博客小站(Aayu Yain = 学无止境 = 阿宇的可爱博客)逛一逛,有惊喜呦~ 最近在学习数据结构二叉树,通过在C++控制台界面已实现了 ...

  9. 父视图坐标转换为子视图_简单的数学将简单的2D游戏视图转换为透视3D视图

    父视图坐标转换为子视图 透视视角 (Perspective-vue) Designing a 2D game for a 2D screen is pretty simple to us. But i ...

最新文章

  1. Xonsh库——Python和Shell语法互通
  2. python显示行数_jupyter notebook实现显示行号
  3. Laravel 多域名共享session
  4. 试着理解cookie和session
  5. 安装配置优化nginx
  6. php 明天凌晨,用php判断时间戳来输出刚刚,分钟前,小时前昨天和时间
  7. 如果重新设计网络,有没有可能合并IP地址跟MAC地址?
  8. 如何让盒子实现水平和垂直居中
  9. 置换群burnside引理(bzoj 1004: [HNOI2008]Cards)
  10. python 调用dll中c或c++语言带指针,数组方法
  11. WIN7英文语言包下载,安装,使用
  12. Python3之标准库
  13. Android实现自定义曲线截屏,Android实现矩形区域截屏的方法
  14. 河海大学计算机网络毕业设计,河海大学文件-河海大学毕业设计.doc
  15. 邮电通信业宣传片制作技巧
  16. 测角误差估计算法matlab,Harris角点检测 及 Matlab实验
  17. opencv VideoWriter保存摄像头视频、本地视频等
  18. Linux自动化运维部署+运维
  19. 360度全景的地拍如何制作?
  20. java 使用jacob实现word转pdf

热门文章

  1. #GNS3,wireshark,CRT的安装
  2. git由ssh改为http后,HTTP Basic: Access denied无法同步问题解决
  3. 网关短信 群发 为什么卡发短信 群发 贵 ?
  4. 增量学习方法分类及近两年论文汇总
  5. linux命令进入bios设置,linux系统肿么进入bios
  6. Mac常用的五款思维导图软件,中文版推荐
  7. 微信活码系统/微信群二维码/活码生成系统/生成微信活码
  8. 汇编指令lmm_动画视频角色的LMM神经网络
  9. C#+Appium+Nunit demo
  10. 苹果电脑Mac键盘快捷键