卡通图
来源:互联网 发布:linux注释 编辑:程序博客网 时间:2024/04/26 07:11
# include<stdio.h>
# include<graphics.h>
# include<dos.h>
# include<conio.h>
void midpoint_line(int x0,int y0,int x1,int y1,int color)
{
float dx,dy,d,x,y,k;
dy=y1-y0;
dx=x1-x0;
k=dy/dx;
d=0.5-k;
x=x0;
y=y0;
putpixel(x,y,color);
while(x<x1)
{
if(d<0)
{
x++;
y++;
d=d+1-k;
}
else{
x++;
d=d-k;
}
putpixel(x,y,color);
}
}
void circlepoints(int x0,int y0,int x,int y,int color)
{
putpixel(x0+x,y0+y,color);
putpixel(x0-x,y0+y,color);
putpixel(x0+x,y0-y,color);
putpixel(x0-x,y0-y,color);
putpixel(x0+y,y0+x,color);
putpixel(x0+y,y0-x,color);
putpixel(x0-y,y0+x,color);
putpixel(x0-y,y0-x,color);
}
void midpoint_circle(int x0,int y0,int r,int color)
{
int x=0;
int y=r;
double d=1.25-r;
circlepoints(x0,y0,x,y,color);
while(y>x){
if(d<0)
d+=2.0*x+3.0;
else{
d+=2.0*(x-y)+5.0;
y--;
}
x++;
circlepoints(x0,y0,x,y,color);
}
}
void main()
{
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"c://win-tc");
midpoint_line(280,230,320,230,4);
setcolor(1);
line(300,200,300,230);
midpoint_line(290,270,310,300,7);
midpoint_line(290,300,310,330,7);
midpoint_line(290,330,310,360,7);
midpoint_line(290,360,310,390,7);
midpoint_line(290,390,310,420,7);
setcolor(7);
line(310,270,290,300);
line(310,300,290,330);
line(310,330,290,360);
line(310,360,290,390);
line(310,390,290,420);
midpoint_circle(300,150,100,2);
midpoint_circle(300,180,20,3);
midpoint_circle(220,50,30,1);
midpoint_circle(380,50,30,1);
midpoint_circle(250,110,20,5);
midpoint_circle(350,110,20,5);
midpoint_circle(250,110,10,5);
midpoint_circle(350,110,10,5);
midpoint_circle(300,370,120,6);
midpoint_circle(200,270,40,6);
midpoint_circle(400,270,40,6);
midpoint_circle(220,450,50,6);
midpoint_circle(380,450,50,6);
getch();
closegraph();
}