QT学习 之 三维饼图绘制
QT里没有相应统计图形的绘制组件
只有手工自己画
效果如图

void aaq::paintEvent( QPaintEvent* ev )
{
QPainter painter(this);
// 去除画笔
painter.setPen(Qt::NoPen);
// 设置反锯齿
painter.setRenderHint(QPainter::Antialiasing); //******************************************** 圆饼图 *****************************************//
if()
{
// 顶层圆面
QRectF rect_top(10.0, 20.0, 280.0, 160.0);
// 底层圆面
QRectF rect_bottom(10.0, 60.0, 280.0, 160.0);
// 中间矩形
QRectF rect_midd(10.0, 100.0, 280.0, 40.0); // 扇形起始角度
int startAngle = * ;
// 扇形覆盖范围
int spanAngle = * ; painter.setBrush(QColor(,,,));
// 绘制底层圆面
painter.drawEllipse(rect_bottom);
// 绘制中间矩形
painter.drawRect(rect_midd); painter.setBrush(QColor(Qt::darkYellow));
// 绘制底层扇形
painter.drawPie(rect_bottom, startAngle, spanAngle); // 扇形的弦与弧的交点
double pi = 3.1415926;
double dx1 = rect_top.width() * 0.5 * cos( * pi / );
double dy1 = rect_top.height() * 0.5 * sin( * pi / ); double dx2 = rect_top.width() * 0.5 * cos( * pi / );
double dy2 = rect_top.height() * 0.5 * sin( * pi / ); // 求交点的坐标值
QPointF posBackCenter = QPointF(rect_top.center());
double dX1 = posBackCenter.x() + dx1 + 0.5;
double dY1 = posBackCenter.y() - dy1 + 0.5; double dX2 = posBackCenter.x() + dx2 + 0.5;
double dY2 = posBackCenter.y() - dy2 + 0.5; // 记录交点
QPointF topLeft = QPointF(dX1, dY1);
QPointF bottomRight = QPointF(dX2, dY2) + QPointF(,);
QPointF bottomLeft = topLeft + QPointF(,);
painter.setBrush(QColor(Qt::darkYellow)); // 绘制连接扇形的区域
QPolygonF path;
path << topLeft << QPointF(dX2,dY2) << bottomRight << bottomLeft;
painter.drawPolygon(path); // 绘制顶层圆面
painter.setBrush(QColor(,,,));
painter.drawEllipse(rect_top); // 绘制顶层扇形
painter.setBrush(QColor(Qt::yellow));
painter.drawPie(rect_top, startAngle, spanAngle);
} QWidget::paintEvent(ev);
}
http://blog.csdn.net/u013007900/article/details/50058837
QT学习 之 三维饼图绘制的更多相关文章
- Qt 学习之路:绘制设备
绘图设备是继承QPainterDevice的类.QPaintDevice就是能够进行绘制的类,也就是说,QPainter可以在任何QPaintDevice的子类上进行绘制.现在,Qt 提供了若干这样的 ...
- Matlab学习笔记(一)—— 三维图形绘制
这学期公选课选的是MATLAB,所以准备把这学期所学习的整理到博客上,作为记录,哇咔咔~ 一.三维函数图: x=cos(t), y=sin(t), z=t %≤t ≤*pi t=:*pi; %t的取值 ...
- Qt 学习之路 2(29):绘制设备
Qt 学习之路 2(29):绘制设备 豆子 2012年12月3日 Qt 学习之路 2 28条评论 绘图设备是继承QPainterDevice的类.QPaintDevice就是能够进行绘制的类,也就是说 ...
- Qt 学习之路 2(24):Qt 绘制系统简介
Qt 学习之路 2(24):Qt 绘制系统简介 豆子 2012年10月30日 Qt 学习之路 2 77条评论 Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于Q ...
- QT学习教程
原地址:http://www.devbean.NET/2012/08/qt-study-road-2-catelog/ 网上看到的不错的教程 本教程以qt5为主,部分地方会涉及qt4.据说非常适合qt ...
- Qt 学习之路 2(72):线程和事件循环
Qt 学习之路 2(72):线程和事件循环 <理解不清晰,不透彻> -- 有需求的话还需要进行专题学习 豆子 2013年11月24日 Qt 学习之路 2 34条评论 前面一章我 ...
- Qt 学习之路 2(46):视图和委托
Home / Qt 学习之路 2 / Qt 学习之路 2(46):视图和委托 Qt 学习之路 2(46):视图和委托 豆子 2013年3月11日 Qt 学习之路 2 63条评论 前面我们介绍了 ...
- Qt 学习之路 2(41):model/view 架构
Qt 学习之路 2(41):model/view 架构 豆子 2013年1月23日 Qt 学习之路 2 50条评论 有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应 ...
- Qt 学习之路 2(33):贪吃蛇游戏(3)
Qt 学习之路 2(33):贪吃蛇游戏(3) 豆子 2012年12月29日 Qt 学习之路 2 16条评论 继续前面一章的内容.上次我们讲完了有关蛇的静态部分,也就是绘制部分.现在,我们开始添加游戏控 ...
随机推荐
- [置顶] 【cocos2d-x入门实战】微信飞机大战之二:别急,先处理好CCScene和CCLayer的关系
转载请表明地址:http://blog.csdn.net/jackystudio/article/details/11713197 在整个游戏开始之前,我们先看一下HelloWorld示例中CCSce ...
- Tomcat 的context.xml
1. 在tomcat 5.5之前: --------------------------------------------------------------- Context体如今/conf/se ...
- sql Servers数据库基础
1. 数据库约束包含: ·非空约束 ·主键约束(PK) primary key constraint 唯一且不为空 ·唯一约束(UQ) unique constraint 唯一 ...
- IIS网站发布容易出现的几个问题
1. 更新版本或者重新安装.net Framework: 2. 更改配置文件节点: 3. 访问权限问题的更改:
- JavaSE学习总结第26天_网络编程
26.01 网络编程概述 网络编程:就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 26.02 网络模型概述和图解 计算机网络之间以何种规则进行通信,就是网络模型研究问题. ...
- AeroSpike 记录
1.基本概念: namespace:类似关系型数据库中的schema,这个需要在配置文件中配置,可以指定存储引擎.存储大小.备份数.存活时间等 set:类似关系型数据库中的表 record:类似关系型 ...
- 5.6.2 Number类型
Number是与数字对应的引用类型.要创建Number对象,可以在调用Number构造函数时向其中传递相应的数值.例如: var numberObject=new Number(10); 与Boole ...
- php基础知识(有代码有注释)
回顾 数组: 数据的组合 数组定义: 三种方式(常用array()) 数组访问: 下标 数组分类: 关联数组, 索引数组和混合数组 数组循环遍历: foreach遍历(foreach原理) 二维数组: ...
- (Problem 73)Counting fractions in a range
Consider the fraction, n/d, where n and d are positive integers. If nd and HCF(n,d)=1, it is called ...
- ftp一些东东
ftp如果绑定域名 登录时登录名应该写成 域名|用户名