首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT5.5抽签填充派

QT5.5抽签填充派
EN

Stack Overflow用户
提问于 2016-03-21 12:12:33
回答 1查看 1.9K关注 0票数 2

下面的图片显示了灰色饼,我想用QT5.5绘制这个

X从左到右增加Y从上到下

我有一个开始角和一个端角,它代表弧的顶部和底部,我使用以下方法计算弧角:

代码语言:javascript
复制
double dblArcAngle = fmod(mcfltElevMaxLimit - mcfltElevMinLimit + 180.0, 360.0) - 180.0;

其中:

代码语言:javascript
复制
mcfltElevMaxLimit is 60 and mcfltElevMinLimit is -10

对drawPie的调用如下所示:

代码语言:javascript
复制
objOffscrPainter.drawPie(QRect(rctGeom.left() + mcintElevLeftMargin
                               ,rctGeom.top() + mcintElevBottomMargin
                               ,rctGeom.width() - mcintElevLeftMargin
                               ,rctGeom.height() - mcintElevBottomMargin)
                               ,mcfltElevMaxLimit * 16, dblArcAngle * 16);

我得到的是一条非常小的折线,大约在派的中间位置。

(编辑),只需阅读文档,即startAngle和spanAngle参数2和3都应乘以16,这确实会产生一个饼饼,不是在正确的方向上,而是在中心,而是它的进度。

(编辑2),更多的进展,下面的图像现在显示了我正在获得的结果,我正在传递的矩形是外部矩形并包含轴,但由于某种原因,饼图被偏移了?

我想要完成的是把饼塞进左下角,与白色轴对齐,然后填充图像。

看起来,所传递的矩形用于确定饼饼的中心点。如果这是正确的,那么矩形的中心必须调整为原点(左下角),大小也必须调整以填充显示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-21 13:55:09

QPainter::drawPie的第一个参数中的矩形是包含您的弧的圆的边界框。因此,要画出您需要的东西,请尝试如下所示:

代码语言:javascript
复制
objOffscrPainter.drawPie(QRect(center.x() - r, center.y() - r, 2 * r, 2 * r)
    ,16*mcfltElevMaxLimit, 16*dblArcAngle);

(其中center是您的弧的中心)

在您的示例中,center似乎是一个QPoint(0, 0),因此您可以使用以下代码:

代码语言:javascript
复制
objOffscrPainter.drawPie(-r, -r, 2*r, 2*r, 16*mcfltElevMaxLimit, 16*dblArcAngle);

(我们也可以在没有QRect的情况下调用它,参见文档)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36130700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档