Qt绘制星空图及卫星视图坐标

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

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】偏移
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QT是一种跨平台的形用户界面(GUI)开发框架,可以用于开发各种桌面应用程序。要在QT绘制并标点,我们可以使用QT提供的绘工具和地数据。 首先,我们需要获取地数据。可以通过在线地服务(如Google Maps)的API获取地瓦片数据,或者使用静态地片。获取地数据后,我们可以将其加载到QT应用程序中。 接下来,我们可以使用QT的绘工具来绘制。可以使用QPainter类来创建一个绘设备,并在其上绘制。我们可以根据地数据的大小和比例尺来确定绘区域的大小,然后使用QPainter的绘制函数绘制。 在地上标点可以使用QT提供的标记机制来实现。可以创建一个自定义的标记类,继承自QWidget或QGraphicsItem,并在其上绘制标记的标。然后,将标记添加到绘设备中的适当位置,即可在地上显示出标点。 为了使用户能够交互地在地上标点,我们可以为绘设备添加鼠标事件的监听器,例如在鼠标点击事件中获取鼠标点击的坐标,并在该位置添加一个标记。用户还可以拖动标记,以便更改标记的位置。 最后,我们可以在QT应用程序中添加一些控件,例如放大缩小按钮、选择不同的地视图等,以提供更好的用户体验。 总而言之,使用QT绘制并标点需要获取地数据,使用QT的绘工具和标记机制绘制和标点,并添加相应的交互性控件。这样,我们就能够在QT应用程序中实现地绘制和标点功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dj Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值