devc++ ege画饼图代码示例
时间: 2023-07-09 12:14:49 浏览: 144
EGE2021_INFORMATICS:EGE示例的实现
以下是使用EGE库在Dev-C++中绘制饼图的示例代码:
```
#include <graphics.h>
#include <math.h>
#define PI 3.14159265358979323846
int main()
{
initgraph(640, 480); // 初始化图形界面
setbkcolor(WHITE); // 设置背景颜色为白色
int x = 320; // 饼图中心的横坐标
int y = 240; // 饼图中心的纵坐标
int r = 100; // 饼图的半径
int data[] = {30, 45, 60, 90}; // 饼图数据,四个扇形的大小分别为30度、45度、60度、90度
int sum = 0; // 计算总数
for (int i = 0; i < 4; i++) {
sum += data[i];
}
int start = 0; // 扇形起始角度
for (int i = 0; i < 4; i++) {
int end = start + data[i]; // 扇形结束角度
setfillcolor(HSVtoRGB(start, 1, 1)); // 根据起始角度设置扇形颜色
fillpie(x, y, r, start, end); // 绘制扇形
start = end; // 更新起始角度
}
getch(); // 等待用户按任意键
closegraph(); // 关闭图形界面
return 0;
}
// 根据H、S、V三个参数计算RGB颜色值
COLORREF HSVtoRGB(double H, double S, double V)
{
double C = V * S;
double X = C * (1 - fabs(fmod(H / 60, 2) - 1));
double m = V - C;
double R, G, B;
if (H >= 0 && H < 60) {
R = C;
G = X;
B = 0;
} else if (H >= 60 && H < 120) {
R = X;
G = C;
B = 0;
} else if (H >= 120 && H < 180) {
R = 0;
G = C;
B = X;
} else if (H >= 180 && H < 240) {
R = 0;
G = X;
B = C;
} else if (H >= 240 && H < 300) {
R = X;
G = 0;
B = C;
} else {
R = C;
G = 0;
B = X;
}
int r = (R + m) * 255;
int g = (G + m) * 255;
int b = (B + m) * 255;
return RGB(r, g, b);
}
```
在运行代码之前需要在Dev-C++中安装EGE库,并将EGE库的头文件和链接库添加到项目中。安装方法和添加方法可以参考EGE官方文档。
阅读全文