#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