рассчитать площадь круга, эллипса (динамический метод) - PullRequest
0 голосов
/ 21 июня 2019

Я рисую круг в режиме реального времени, и я хочу вычислить площадь этого (эллипс круга) путем вычисления числа пикселей каждый раз, когда форма изменяется курсором .

label.h

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);

        }
}
}
}

1 Ответ

4 голосов
/ 21 июня 2019

QPainter::drawEllipse нарисует эллипс, который соответствует данному QRect.

Размер QRect указан в пикселях. Таким образом, вы можете использовать классическую формулу для расчета площади эллипса:

long areaInPixel = M_PI * rect.width()/2 * rect.height()/2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...