#include "stdio.h"
#include "stdlib.h"
#include "graphics.h"
#include "math.h"
#define PI 3.1415926
int a=200,b=200;
void initgraphics()
{
int GraphDriver;
int GraphMode;
int ErrorCode;
GraphDriver=DETECT;
initgraph(& GraphDriver,&GraphMode,"C:\\TC20\\BGI");
ErrorCode=graphresult();
if(ErrorCode!=grOk)
{printf("Graphic system Init Error:%s","");
grapherrormsg(ErrorCode);
exit(0);
}
}
Line(int x0,int y0,float angle,float L,int color)
{
float k,x1,y1;
int jiao=(int)angle;
int flag;
k=tan(angle/180*PI);
x1=x0+L*cos(angle/180*PI);
y1=y0+L*sin(angle/180*PI);
if((jiao%360>=0)&&(jiao%360<=45)||(jiao%360>315)&&(jiao%360<=360)) flag=1;
else if((jiao%360>45)&&(jiao%360<=90)||(jiao%360>90)&&(jiao%360<=135)) flag=2;
else if((jiao%360>135)&&(jiao%360<=180)||(jiao%360>180)&&(jiao%360<=225)) flag=3;
else if((jiao%360>225)&&(jiao%360<=270)||(jiao%360>270)&&(jiao%360<=315)) flag=4;
switch(flag)
{case 1:
{int x;
float y=y0;
for(x=x0;x<=x1;x++)
{
putpixel(x,(int)(y+0.5),color);
a=x,b=(int)(y+0.5);
y+=k;
}
printf("a1 and b1 is:%d,%d\n",a,b);
}
break;
case 2:
{int y;
float x=x0;
for(y=y0;y<=y1;y++)
{
putpixel((int)(x+0.5),y,color);
a=(int)(x+0.5),b=y;
x+=1/k;
}
printf("a2 and b2 is:%d,%d\n",a,b);
}
break;
case 3:
{int x;
float y=y0;
for(x=x0;x>=x1;x--)
{
putpixel(x,(int)(y+0.5),color);
a=x,b=(int)(y+0.5);
y-=k;
}
printf("a3 and b3 is:%d,%d\n",a,b);
}
break;
case 4:
{int y;
float x=x0;
for(y=y0;y>=y1;y--)
{
putpixel((int)(x+0.5),y,color);
a=(int)(x+0.5),b=y;
x-=1/k;
}
printf("a4 and b4 is:%d,%d\n",a,b);
}
break;
}
}
void polygon(int n)
{
float ang,direction;
int i;
ang=(n-2)*180/n;
direction=0;
Line(a,b,direction,50,3);
for(i=1;i
{
direction+=(180-ang);
printf("direction is %f\n",direction);
Line(a,b,direction,50,3);
}
}
void BoundaryFill4(int x,int y,int boundarycolor,int newcolor)
{ int color; /*color怎么取值*/
color=getpixel(x,y);
if(color!=newcolor && color!=