c++ haru生成pdf输出饼图

devtools/2025/2/11 14:48:10/


#define PI 3.14159265358979323846

// 绘制饼图的函数
void draw_pie_chart(HPDF_Doc pdf, HPDF_Page page, float *data, int data_count, float x, float y, float radius) {
    float total = 0;
    int i;

    // 计算数据总和
    for (i = 0; i < data_count; i++) 
    {
        total += data[i];
    }

    float start_angle = 0;
    for (i = 0; i < data_count; i++) {
        // 计算当前数据所占的角度
        float angle = data[i] / total * 360;

        // 设置不同的颜色
        HPDF_Page_SetRGBFill(page, (float)rand() / RAND_MAX, (float)rand() / RAND_MAX, (float)rand() / RAND_MAX);

        // 绘制扇形
        HPDF_Page_MoveTo(page, x, y);
        HPDF_Page_Arc(page, x, y, radius, start_angle, start_angle + angle);
        HPDF_Page_ClosePath(page);
        HPDF_Page_Fill(page);

        start_angle += angle;
    }
}

void generalPip()
{
    HPDF_Doc pdf;
    HPDF_Page page;
    float data[] = { 30, 20, 20,30 };  // 示例数据
    int data_count = sizeof(data) / sizeof(data[0]);

    // 创建一个新的 PDF 文档
    pdf = HPDF_New(NULL, NULL);
    if (!pdf) {
        printf("Error: Cannot create PDF document.\n");
        return;
    }

    // 添加一个新页面
    page = HPDF_AddPage(pdf);
    HPDF_Page_SetSize(page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT);

    // 绘制饼图
    draw_pie_chart(pdf, page, data, data_count, 200, 300, 100);

    // 保存 PDF 文件
    HPDF_SaveToFile(pdf, "pie_chart.pdf");

    // 释放资源
    HPDF_Free(pdf);
}
 

包含的库下载地址:

https://download.csdn.net/download/u011269801/90259877


http://www.ppmy.cn/devtools/157957.html

相关文章

小红书爬虫: 获取所需数据

小红书&#xff0c;又名 “小红书 ”或简称 “红”&#xff0c;已迅速成为中国社交和电子商务领域的重要参与者&#xff0c;成为一个不可或缺的平台。对于企业、营销人员和数据分析师来说&#xff0c;从小红书收集数据可以获得宝贵的洞察力&#xff0c;从而推动业务增长。虽然这…

stm32电机驱动模块

电机驱动模块是智能车等电子设备中用于驱动电机运转的重要部件&#xff0c;它能将微控制器输出的控制信号转换为足够的功率和电流来驱动电机。以下为你详细介绍电机驱动模块的相关信息&#xff1a; 常见类型 1. L298N 电机驱动模块 特点 高电压、大电流驱动能力&#xff1a;能…

基于ESP32的远程开关灯控制(ESP32+舵机+Android+物联网云平台)

目录 材料环境准备物理材料软件环境 物联网平台配置&#xff08;MQTT&#xff09;MQTT阿里云平台配置创建产品添加设备自定义topic esp32配置接线代码 Android部分和云平台数据流转 前言&#xff1a;出租屋、宿舍网上关灯问题&#xff0c;计划弄一个智能开关以及带一点安防能力…

Git stash 暂存你的更改(隐藏存储)

一、Git Stash 概述 在开发的时候经常会遇到切换分支时需要你存储当前的更改&#xff0c;如果你暂时不想应用当前更改也不想放弃更改&#xff0c;那么你可以使用 git stash先将其隐藏存储&#xff0c;这样代码就会变成未修改的状态&#xff0c;等解决其他问题后&#xff0c;在…

爬虫案例-爬取某度文档利用飞桨ch_pp-ocrv3模型提高对图片的识别

文章目录 1.安装VC_redist.x64库和开启开发者模式2.第三方库的安装和paddlehub安装3、爬取某度文档的代码4、效果 1.安装VC_redist.x64库和开启开发者模式 下载VC_redist.x64: 点击这里 在开发者选项&#xff0c;打开开发人员模式 2.第三方库的安装和paddlehub安装 #以下是安装…

Android studio 创建aar包给Unity使用

1、aar 是什么&#xff1f; 和 Jar有什么区别 aar 和 jar包 都是压缩包&#xff0c;可以使用压缩软件打开 jar包 用于封装 Java 类及其相关资源 aar 文件是专门为 Android 平台设计的 &#xff0c;可以包含Android的专有内容&#xff0c;比如AndroidManifest.xml 文件 &#…

中国通信企业协会通信网络安全服务能力评定安全设计与集成服务能力评定三级要求准则...

安全设计与集成服务能力三级是通信网络安全服务能力评定安全设计与集成服务能力评定的最高等级&#xff0c;所需的要求也会更加严苛&#xff0c;不仅要满足安全设计与集成服务二级能力要求的所有条款&#xff0c;还要满足以下要求&#xff1a; 规模与资产要求 1)单位正规编制员…

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海&#xff01;SCI算法分解组合四模型原创对比首发&#xff01;SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海&#xff01;SCI算法分解组合四模型原创对比首发&#xff01;SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…