当前位置: 首页 > article >正文

c++ haru生成pdf输出饼图


#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.kler.cn/a/539948.html

相关文章:

  • MongoDB 有哪些特性
  • 【redis】数据类型之list
  • 第一财经对话东土科技 | 探索工业科技新边界
  • DeepSeek和ChatGPT的优劣或者区别(答案来DeepSeek和ChatGPT)
  • LIMO:上海交大的工作 “少即是多” LLM 推理
  • 利用UNIAPP实现短视频上下滑动播放功能
  • 安卓基础(Okhttp3)
  • ZooKeeper 技术全解:概念、功能、文件系统与主从同步
  • 【SQL技术】不同数据库引擎 SQL 优化方案剖析
  • 软件测试之通用功能测试点
  • Visual Basic语言的图形用户界面
  • 位运算算法篇:异或运算
  • webpack配置语言之---ts
  • 用DeepSeek写小程序指令技巧
  • doris:MySQL 兼容性
  • 【含开题报告+文档+PPT+源码】基于SpringBoot+Vue旅游管理网站
  • PromptSource官方文档翻译
  • 我准备做一个24H的摄像机模拟器,用录像视频模拟实时画面,如果能支持时间水印就更好了
  • user、assistant、system三大角色在大语言模型中的作用(通俗解释)
  • 荣耀已接入DeepSeek-R1,荣耀手机系统版本MagicOS8.0及以上用户可用
  • VSCode 下载与使用教程:附百度网盘地址
  • Word中Ctrl+V粘贴报错问题
  • 为什么代理了网络ip没有变化
  • chrome-base 如何实现一个BindOnce
  • 大语言模型prompt -Template
  • LIMO:上海交大的工作 “少即是多” LLM 推理