QPainter 画半圆环

文章详细描述了如何在Qt图形库中利用QPainter绘制带有特定角度的圆弧和扇形,包括计算圆心坐标到矩形左上角的距离,以及设置不同参数来实现所需效果。

我把圆心坐标 算出 矩形左上角坐标
在这里插入图片描述

/************
功能说明 画扇形
输入参数:画家的引用,圆心坐标,半径,起始角 扫过的区域角
输出: 无
*******/
void DrawPie(QPainter &painter, QPointF centerPoint, double radius,double startAngle,double scanAreaAngle)
{
        double left_up_x=centerPoint.x()-radius;
        double left_up_y=centerPoint.y()-radius;
        painter.drawPie(QRectF(left_up_x,left_up_y,radius*2,radius*2),startAngle*16,scanAreaAngle*16);
}

在这里插入图片描述

/************
 功能说明 画圆弧
 输入参数:画家的引用,圆心坐标,半径,起始角 扫过的区域角,画刷颜色
 输出: 无
*******/
  void MainWindow::drawWifiArc(QPainter &painter,QPointF centerPoint ,int radius, int startAngle, int lenAngle,QColor color)
  {
      painter.save();
      double left_up_x=centerPoint.x()-radius;
      double left_up_y=centerPoint.y()-radius;

      QRectF rect(left_up_x,left_up_y,radius*2,radius*2);
        //  画扇形
      QPainterPath path;
      path.arcTo(rect, startAngle, lenAngle);

        // 同心圆,   半径 比  扇形  半径小
      QPainterPath subPath;
      subPath.addEllipse(QPointF(0,0),radius*0.5,radius*0.5);

      //扇形路径-同心圆路径= 圆弧路径
      path -= subPath;

      painter.setPen(Qt::NoPen);
      painter.setBrush(QColor(color));
      painter.drawPath(path);
      painter.restore();
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值