为什么以下编码可以运行却出现如下提示??
以下代码RUN正常,但是user screen出现如下提示:
BGI error,graphics not initilized.
该怎样才能达到程序本来的目的:旋转太极的效果呢?
#include<graphics.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void mysector(int x,int y,int start,int end,int xr,int yr);
void Cmvolve(char *buffer);
void main()
{
int gdrive=VGA,gmode=VGAHI;
int size=0;
void *buffer=NULL;
initgraph(&gdrive,&gmode,"");
cleardevice();
setbkcolor(7);
size=imagesize(160,80,320,320);
buffer=malloc(size);
getimage(160,80,321,321,buffer);
Cmvolve(buffer);
getch();
closegraph();
}
void mysector(int x,int y,int start,int end,int xr,int yr)
{
if(start<360&&end>360)
{
sector(x,y,start,360,xr,yr);
sector(x,y,0,end-360,xr,yr);
}
else if(start==360)
sector(x,y,0,end-360,xr,yr);
else if(start>360&&end >360)
sector(x,y,start-360,end-360,xr,yr);
else
sector(x,y,start,end,xr,yr);
}
void Cmvolve(char *buffer)
{
int xt=0,yt=0,x0=320,y0=240,d=0;
while(!kbhit())
{
putimage(160,80,buffer,COPY_PUT);
setcolor(15);
circle(x0,y0,160);
d=(d+10)%360;
xt=(int)80*sin((d+90)*(2*3.14)/360);
yt=(int)80*cos((d+90)*(2*3.14)/360);
setfillstyle(1,15);
mysector(x0,y0,0+d,180+d,160,160);
setcolor(1);
setfillstyle(1,1);
mysector(x0,y0,0+d,180+d,160,160);
setcolor(1);
setfillstyle(1,1);
mysector(x0+xt,y0+yt,0+d,180+d,80,80);
setcolor(15);
setfillstyle(1,15);
mysector(x0-xt,y0-yt,180+d,360+d,80,80);
setcolor(15);
setfillstyle(1,15);
mysector(x0+xt,y0+yt,0,360,30,30);
setcolor(1);
setfillstyle(1,1);
mysector(x0-xt,y0-yt,0,360,30,30);
getimage(160,80,320,320,buffer);
}
}