?? 例4-22.c
字號:
/* Note:Your choice is C IDE */
#include <stdio.h>
#include <math.h>
#include <graphics.h>
#define PI 3.1416
main()
{
char s[30];
float values[10]={12.0,16.0,22.0,8.0,10.0,13.0,20.0,14.0,9.0,19.0};
char *categories[10]={"1","2","3","4","5","6","7","8","9","10"};
double x,y,bega,enda,midangle;
float total;
int radius,begangle,endangle;
int i,graphdriver,graphmode;
graphdriver=VGA;
graphmode=VGAHI;
initgraph(&graphdriver,&graphmode,"");
cleardevice();
setviewport(10,10,639,479,1); /* 開一個(gè)視圖窗口 */
setcolor(3);
rectangle(20,20,600,460); /* 畫一矩形框 */
total=0;
for(i=0;i<=9;i++)
total=total+values[i]; /* 得到總量 */
begangle=0; /* 開始角為0 */
radius=140; /* 半徑 */
rectangle(530,40,590,180);
for(i=0;i<=9;i++)
{
endangle=360*values[i]/total+begangle; /* 畫扇形的結(jié)束角 */
bega=begangle*PI/180; /* 換成弧度 */
enda=begangle*PI/180; /* 得出扇形的中間角 */
midangle=(bega+enda)/2;
x=300+cos(midangle)*radius*1.5;
y=240-sin(midangle)*radius*1.2;
sprintf(s,"%3.2f%",values[i]/total*100);
setcolor(WHITE);
outtextxy(x,y,s);
setfillstyle(1,i+2);
pieslice(300,240,begangle,endangle+4,radius);
rectangle(540,55+12*i,560,60+12*i); /* 畫代表各扇形的顏色條 */
floodfill(550,57+12*i,WHITE);
outtextxy(565,57+12*i,categories[i]); /* 標(biāo)上號 */
begangle=endangle; /* 上一個(gè)扇形的結(jié)束角,就是下一個(gè)扇形的開始角 */
}
getch();
closegraph();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -