QT中无论用drawArc 还是用drawRect,还是drawEllipse 所画的圆形均为 起始点矩形的 内接圆。 矩形的中心就是圆的圆心
给定圆心(100,100) 半径50, 则矩形的起始点 为 (100 - 25, 100 - 25),起始点这里需要做下处理。
对应的测试代码:
void MainWindow::paintEvent(QPaintEvent* pPainter)
{
QPainter pt(this);
//画十字线
pt.drawLine(100,0,100,300);
pt.drawLine(0,100,300,100);
//pt.drawArc(100, 100,50,50,0*16, 360*16);//矩形的内接圆形
//pt.drawRect(100 - 25, 100 - 25,50,50);//ok
//圆心为(100,100)半径为50的圆
pt.drawArc(100 - 25, 100 - 25,50,50,0*16, 360*16);
//画矩形,并画矩形的内接圆
QPen pen;
pen.setColor(Qt::green);
pt.setPen(pen);
pt.drawRect(100 , 100,50,50);//矩形--绿色
pen.setColor(Qt::red);
pt.setPen(pen);
pt.drawArc(100, 100,50,50,0*16, 360*16);//矩形的内接圆形---红色//圆心为(150,150) 为矩形的内接圆
}
参考文章 Qt之图形(绘制漂亮的圆弧)
https://www.cnblogs.com/itrena/p/5938341.html
Qt中圆弧和扇形的绘制
https://zhuanlan.zhihu.com/p/142968773?from_voters_page=true
Qt基本图形绘制(圆、圆角矩形、圆弧、椭圆、扇形等)
https://blog.csdn.net/qq_40194498/article/details/79650641