我把圆心坐标 算出 矩形左上角坐标

/************
功能说明 画扇形
输入参数:画家的引用,圆心坐标,半径,起始角 扫过的区域角
输出: 无
*******/
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();
}
文章详细描述了如何在Qt图形库中利用QPainter绘制带有特定角度的圆弧和扇形,包括计算圆心坐标到矩形左上角的距离,以及设置不同参数来实现所需效果。

8056

被折叠的 条评论
为什么被折叠?



