QT小项目--雷达界面(三)绘制扫描效果

雷达界面会有扫描效果,可以设置一个定时器,每隔一段时间就更新角度,然后再调用update即之前文章介绍过的手工控制界面绘制:
代码如下

void Widget::timerTimeout()
{
    //更新角度
    if(flag == 0)//flag为雷达之时是正转还是逆转
    {
        angle1++;
        if(angle1 == 180)
            flag = 1;
    }
    else
    {
         angle1--;
         if(angle1 == 0)
             flag = 0;
    }
    update();
}

绘制扫描的指针

  	pen.setWidth(15);
    painter.setPen(pen);
    painter.drawLine(0,0,700 * qCos(qDegreesToRadians(angle1)),-700 * qSin(qDegreesToRadians(angle1)));

渐变色的绘制:使用多画直线的方法来实现,使用30根直线,直线与直线的间隔为1°。根据直线是第几根来设置透明度的大小

        for(int num = 1; num <= angle; num ++)
        {
             painter.setOpacity(1 - num * 1.0 / ((angle > 30)? 30 : angle));
             painter.drawLine(0,0,700 * qCos(qDegreesToRadians(angle - num)),-700 * qSin(qDegreesToRadians(angle - num)));
             if(num == 30)
                 break;
        }

在这里插入图片描述

下载通道:https://download.csdn.net/download/misikamikirto/87881669?spm=1001.2014.3001.5503

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值