广告
返回顶部
首页 > 资讯 > 精选 >QT如何利用QPainter绘制三维饼状图
  • 271
分享到

QT如何利用QPainter绘制三维饼状图

2023-07-02 09:07:10 271人浏览 独家记忆
摘要

这篇“Qt如何利用QPainter绘制三维饼状图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“QT如何利用QPainter绘

这篇“Qt如何利用QPainter绘制三维饼状图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“QT如何利用QPainter绘制三维饼状图”文章吧。

    一、项目介绍

    本文介绍利用QPainter实现三维饼状图的绘制,由于Qt中没有三维饼状图的绘制组件,因此只能自行绘制。

    二、项目基本配置

    新建一个Qt案例,项目名称为“PieTest”,基类选择“QWidget”,取消选中创建UI界面复选框,完成项目创建。

    三、UI界面设置

    无UI界面

    四、主程序实现

    4.1 widget.h头文件

    头文件中只需声明paintEvent函数:

    private:    void paintEvent( QPaintEvent* e);

    4.2 widget.cpp源文件

    paintEvent函数定义如下:

    void Widget::paintEvent( QPaintEvent* e){    int start=240;//定义起始角度    int ang=30;//定义角度范围    QPainter painter(this);    // 去除画笔    painter.setPen(Qt::NoPen);    // 设置反锯齿    painter.setRenderHint(QPainter::Antialiasing);    //三维饼状图    // 顶层圆面    QRectF rect_top(10.0, 20.0, 280.0, 160.0);    // 底层圆面(宽高相同,y在顶层圆面下方40处)    QRectF rect_bottom(10.0, 60.0, 280.0, 160.0);    // 中间矩形    QRectF rect_midd(10.0, 100.0, 280.0, 40.0);    // 扇形起始角度    int startAngle = start * 16;      //从230度    // 扇形覆盖范围    int spanAngle = ang * 16;    painter.setBrush(QColor(97,35,35,255));//饼状图高度颜色    // 绘制底层圆面    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(start * pi / 180);    double dy1 = rect_top.height() * 0.5 * sin(start * pi / 180);    double dx2 = rect_top.width() * 0.5 * cos((start+ang) * pi / 180);    double dy2 = rect_top.height() * 0.5 * sin((start+ang) * pi / 180);    // 求交点的坐标值    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(0,40);        QPointF bottomLeft = topLeft + QPointF(0,40);        painter.setBrush(QColor(Qt::darkYellow));        // 绘制连接扇形的区域        QPolyGonF path;        path << topLeft << QPointF(dX2,dY2) << bottomRight << bottomLeft;        painter.drawPolygon(path);        // 绘制顶层圆面        painter.setBrush(QColor(156,56,56,255));        painter.drawEllipse(rect_top);        // 绘制顶层扇形        painter.setBrush(QColor(Qt::yellow));        painter.drawPie(rect_top, startAngle, spanAngle);    QWidget::paintEvent(e);}

    其部分示意为:

    QT如何利用QPainter绘制三维饼状图

    五、效果演示

    完整效果如下:

    QT如何利用QPainter绘制三维饼状图

    以上就是关于“QT如何利用QPainter绘制三维饼状图”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: QT如何利用QPainter绘制三维饼状图

    本文链接: https://www.lsjlt.com/news/341135.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • QT利用QPainter绘制三维饼状图
      目录一、项目介绍二、项目基本配置三、UI界面设置四、主程序实现4.1 widget.h头文件4.2 widget.cpp源文件五、效果演示一、项目介绍 本文介绍利用QPainter实...
      99+
      2022-11-13
    • QT如何利用QPainter绘制三维饼状图
      这篇“QT如何利用QPainter绘制三维饼状图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“QT如何利用QPainter绘...
      99+
      2023-07-02
    • python如何绘制饼状图
      小编给大家分享一下python如何绘制饼状图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!说明用于表示不同分类的比例,通过弧度大小比较各种分类。pie函数可以绘制...
      99+
      2023-06-20
    • C#如何绘制饼状图和柱状图
      这篇文章主要介绍C#如何绘制饼状图和柱状图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下#代码如下:using System;using System.Collections;usin...
      99+
      2023-06-29
    • 如何利用Python pyecharts绘制饼图
      这篇文章主要为大家展示了“如何利用Python pyecharts绘制饼图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用Python pyecharts绘制饼图”这篇...
      99+
      2023-06-22
    • Qt如何使用QWT绘制柱状图
      本文将为大家详细介绍“Qt如何使用QWT绘制柱状图”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Qt如何使用QWT绘制柱状图”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知...
      99+
      2023-06-28
    • 如何用java绘制三维图
      要使用Java绘制三维图,你可以使用Java的图形库和3D图形引擎。下面是一个简单的示例代码,可以帮助你开始绘制一个简单的三维图:`...
      99+
      2023-10-07
      java
    • python如何绘制三维函数图像图
      在python中使用matplotlib库绘制三维函数图像图,具体方法如下:import matplotlib as mplfrom mpl_toolkits.mplot3d import Axes3Dimport numpy as npi...
      99+
      2022-10-24
    • 如何利用pyecharts画好看的饼状图
      前言 使用的pyecharts是v1.0 这里需要注意,pyecharts0.5的版本和v1.0以上的版本完全不一样,可以说是两个包 该包能够方便快捷的绘制图形 饼状图 圆环 代码...
      99+
      2022-11-11
    • 利用python绘制二三维曲面和矢量流线图
             为了实现不同数据的可视化,最近研究了python环境下的可视化方案,为后续的流体运动仿真模拟做好储备,由于python处理数据的便利性,导致目前很多后端处理或者可视化成图操作都在python中实现,比如前端是vue,加上简单的...
      99+
      2023-09-15
      python 开发语言 matplotlib
    • 如何用R语言绘制饼图和条形图
      目录饼图绘制条形图绘制beside 参数 R 语言提供来大量的库来实现绘图功能。 饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系。 R ...
      99+
      2022-11-11
    • 详解如何利用JavaScript绘制堆叠柱状图
      效果图 this.state.workChartList的数据结构 const workChartList = [ { name: "居民热线", chartData: [5, ...
      99+
      2022-11-13
    • 如何利用css绘制三角形
      这篇文章给大家分享的是有关如何利用css绘制三角形的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。以下是常用的三角形形状其实都是html+css就能实现,很简单代码如下:第一种方法html代码:代码如下:<!...
      99+
      2023-06-08
    • python如何利用matplotlib绘制并列双柱状图并标注数值
      目录项目场景:代码:效果图:扩展功能及代码:补充:Python画图实现同一结点多个柱状图总结项目场景: Python项目需要画两组数据的双柱状图,以下以一周七天两位小朋友吃糖颗数为例...
      99+
      2022-11-10
    • 如何利用vue3.x绘制流程图
      这篇文章主要介绍“如何利用vue3.x绘制流程图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用vue3.x绘制流程图”文章能帮助大家解决问题。下面是效果图:整体结构布局:需要实现的功能列表:...
      99+
      2023-07-02
    • 如何利用python绘制等高线图
      目录使用方法添加label的绘制虚线level设置颜色和线条宽度其他设置使用方法 matplotlib.pyplot.contour(*args, data=None, **kwar...
      99+
      2022-11-11
    • 如何利用Matlab绘制有趣图像
      这篇文章主要介绍了如何利用Matlab绘制有趣图像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.随机樱花树function sakura% @auth...
      99+
      2023-06-29
    • 如何利用pyecharts绘制地理散点图
      小编给大家分享一下如何利用pyecharts绘制地理散点图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.背景利用上海市7000+办公楼项目,包括项目名称,地理位置,每天的租金,建筑面积和项目所在的商圈,现在要让这些项目...
      99+
      2023-06-29
    • 如何基于python和Matplotlib绘制函数的等高线与三维图像
      这篇文章主要介绍了如何基于python和Matplotlib绘制函数的等高线与三维图像,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本例绘制的函数为:1. 网格点&e...
      99+
      2023-06-26
    • 如何在Python中使用ECharts绘制堆叠柱状图
      在数据可视化领域,堆叠柱状图是一种常见的可视化方式。它将多个数据系列绘制成一个条形,每个条形由多个子项组成,每个子项对应一个数据系列,在同一坐标系下进行展示。这种图表可以用于比较不同类别或数据系列的总大小、每个类别或数据系列的组成比例等。在...
      99+
      2023-12-17
      Python echarts 堆叠柱状图
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作