bar3d(),图表超出范围

时间:2010-07-20 21:41:13

标签: c graphics

我已经在图形中创建了一个程序,但是当我在图表中输入任何值时,它就会达到峰值

 #include <graphics.h>
#include <dos.h>
#include <graphics.h>
#include <conio.h>
#define LEFT 5
#define BOT 300
#define BWIDTH 10
#define TOPFLAG 1
#define BDEPTH 4
#define SEPARATION 12
#define SPACE 15
#define N 10
#define TOP 5
#define PPD (float(BOT)-TOP)*100
#define DI (BWIDTH+SEPARATION)
#define WIDTH (N+1)*DI
void main(void)
{
    int driver=DETECT;
    int mode;
    initgraph(&driver,&mode,"C:\\TC\\bgi");
    cleardevice();
    rectangle(LEFT,TOP,LEFT+WIDTH,BOT);
    int arr[N]={1,2,3,4,5,6,7,8,9,10};
    for(int i=0;i<N;i++)
    {
    setfillstyle(SOLID_FILL,1+i%3);
    bar3d(SPACE+LEFT+i*DI,BOT-(arr[i]*PPD),LEFT+SPACE+i*DI+BWIDTH,BOT,BDEPTH,TOPFLAG);



}



    getch();
    closegraph();





}

1 个答案:

答案 0 :(得分:0)

汉斯是对的,但我认为你有一个*,你想要一个/ - PPD的定义应该是:

#define PPD (((BOT)-(TOP))/100.0)

现在,加入我们21世纪!