我实时绘制一个圆,我想通过每次通过光标更改形状来计算像素数,从而计算出此(圆椭圆)的面积
。
标签
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/