首页 > 其他 > 详细

绘制简单的风向玫瑰图代码

时间:2019-02-26 11:40:52      阅读:320      评论:0      收藏:0      [点我收藏+]
1、绘制简单的风向玫瑰图代码
2、主要使用QPainter
3、在子widget上绘制需要使用widget监视事件 eventfilter

update();//更新界面
        //镜头12
        QPainter painter1(WindRose12)/**/;
        painter1.begin(WindRose12);
        painter1.setFont(QFont("宋体"));
        painter1.translate(WindRose12->width() >> 1, WindRose12->height() >> 1);
        painter1.setRenderHint(QPainter::Antialiasing,true);
        //画同心圆
        painter1.setPen(QPen(Qt::black,2,Qt::DashDotDotLine));
        painter1.drawEllipse(-radius, -radius, radius << 1, radius << 1);
        painter1.drawEllipse(-(radius-20), -(radius-20), (radius-20) << 1, (radius-20) << 1);
        painter1.drawEllipse(-(radius-40), -(radius-40), (radius-40) << 1, (radius-40) << 1);
        painter1.drawEllipse(-(radius-60), -(radius-60), (radius-60) << 1, (radius-60) << 1);
        //画X轴和Y轴
        painter1.drawLine(QPoint(-radius,-radius>>8),QPoint(radius,-radius>>8));
        painter1.drawLine(QPoint(-radius>>8,-radius),QPoint(-radius>>8,radius));
        //标注方向
        painter1.setFont(QFont("Times", 20, QFont::Bold));
        painter1.drawText(QPoint(-radius>>8,-radius-offset-offset),"Camera12");
        painter1.drawText(QPoint(-radius>>8,-radius-offset),"N");
        painter1.drawText(QPoint(-radius>>8,radius+offset),"S");
        painter1.drawText(QPoint(-radius-offset,-radius>>8),"W");
        painter1.drawText(QPoint(radius+offset,-radius>>8),"E");
        //绘制弧形
        //gradientArc(&painter, radius, 0+90,  -(10), 30, qRgb(200, 200, 0));
        for(int i=0;i<angledis1.count();i++)
        {
            gradientArc(&painter1, radius*angledis1[i]/max1, 0+90-i*10,  -(10), 30, qRgb(200, 200, 0));
        }
        painter1.end();

绘制简单的风向玫瑰图代码

原文:https://www.cnblogs.com/tsh292278/p/10436145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!