c++ haru生成pdf输出饼图

server/2025/2/11 10:59:59/


#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/server/166732.html

相关文章

java毕业设计之建设路小学芙童币和芙童印章管理系统源码(ssm+mysql)

项目简介 建设路小学芙童币和芙童印章管理系统实现了以下功能&#xff1a; 建设路小学芙童币和芙童印章管理系统的主要使用者管理员具有系统最高权限&#xff0c;通过授权登录后进行管理&#xff0c;包括修改个人密码、用户信息的管理。用户包括学生用户、老师用户、管理员用…

【JavaEE进阶】Spring IoC

目录​​​​​​​ &#x1f334;序言 &#x1f384;Spring是什么&#xff1f; &#x1f6a9;什么是容器&#xff1f; &#x1f6a9;什么是IoC&#xff1f; &#x1f333;IoC介绍 &#x1f6a9;传统程序开发 &#x1f6a9;问题分析 &#x1f6a9;解决方案 &#x1f6…

DeepSeek 关联 Word 使用教程:解锁办公新效率

在当今数字化办公时代&#xff0c;将强大的人工智能模型与常用办公软件相结合&#xff0c;能显著提升工作效率。DeepSeek 作为一款先进的人工智能工具&#xff0c;若能与广泛使用的办公软件 Word 实现关联&#xff0c;可在文档撰写、编辑、内容优化等诸多方面为用户带来极大便利…

Spring基于文心一言API使用的大模型

有时做项目我们可能会遇到要在项目中对接AI大模型 本篇文章是对使用文心一言大模型的使用总结 前置任务 在百度智能云开放平台中注册成为开发者 百度智能云开放平台 进入百度智能云官网进行登录&#xff0c;点击立即体验 点击千帆大模型平台 向下滑动&#xff0c;进入到模型…

优惠券平台(一):基于责任链模式创建优惠券模板

前景概要 系统的主要实现是优惠券的相关业务&#xff0c;所以对于用户管理的实现我们简单用拦截器在触发接口前创建一个单一用户。 // 用户属于非核心功能&#xff0c;这里先通过模拟的形式代替。后续如果需要后管展示&#xff0c;会重构该代码 UserInfoDTO userInfoDTO new…

【医院管理会计专题】2.管理会计:医院运营管理的隐形引擎

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈、运营成本不断攀升的背景下,医院运营管理面临着前所未有的挑战。管理会计作为一种综合性的财务管理工具,在医院运营管理中扮演着举足轻重的角色。它不仅能够为医院管理…

Visual Studio 进行单元测试【入门】

摘要&#xff1a;在软件开发中&#xff0c;单元测试是一种重要的实践&#xff0c;通过验证代码的正确性&#xff0c;帮助开发者提高代码质量。本文将介绍如何在VisualStudio中进行单元测试&#xff0c;包括创建测试项目、编写测试代码、运行测试以及查看结果。 1. 什么是单元测…

iOS AES/CBC/CTR加解密以及AES-CMAC

感觉iOS自带的CryptoKit不好用&#xff0c;有个第三方库CryptoSwift还不错&#xff0c;好巧不巧&#xff0c;清理过Xcode缓存后死活下载不下来&#xff0c;当然也可以自己编译个Framework&#xff0c;但是偏偏不想用第三方库了&#xff0c;于是研究了一下&#xff0c;自带的Com…