我实时绘制一个圆,我想通过每次通过光标更改形状来计算像素数,从而计算出此(圆椭圆)的面积


标签

QPainter painter;
       QLine mLine;
       QRect mRect;
       QRect mCirc;

label.cpp
void  Label::paintEvent(QPaintEvent *event){
    QLabel::paintEvent(event);

 QPainter painter(this);
 QPen pen(Qt::red, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);

 painter.setPen(pen);
    if(mousePressed){

        switch (_paintMode) {
        case PaintRect:{
            painter.drawRect(mRect);
            float s=mRect.width()*mRect.height();


        }break;
        case PaintLine:
        {
            painter.drawLine(mLine);
            float d=sqrt(pow(mLine.p1().x()-mLine.p2().x(),2)+pow(mLine.p1().y()-mLine.p2().y(),2));



        }break;
        case PaintCirc:{
            painter.drawEllipse(mCirc);

        }
}
}
}

最佳答案

QPainter::drawEllipse将绘制适合给定QRect的椭圆。

QRect的大小以像素为单位指定。因此,您可以使用经典公式来计算椭圆的面积:

long areaInPixel = M_PI * rect.width()/2 * rect.height()/2

关于c++ - 计算圆,椭圆的面积(动态方法),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56702758/

10-13 07:04