画圆
#include<fstream>
#include<cstdio>
using namespace std;
ofstream cout("circel.txt");
int a[1002][1002];
int pr()
{
for(int i=1;i<=1001;i++)
{
for(int j=1;j<=1001;j++)
{
if(a[i][j]==1)
cout<<"■";
else
if(a[i][j]==2)
cout<<"●";
else
if(a[i][j]==3)
cout<<"★";
else
cout<<" ";
}
cout<<endl;
}
}
int main()
{
int yx,yy,aa,bb;
printf("请输入圆心坐标(x,y)\n");
scanf("%d %d",&yx,&yy);
printf("请输入半径范围");
scanf("%d %d",&aa,&bb);
int r,x,y,dx,dy,l,d,dl;
for(r=aa;r<=bb;r++)
{
x=yx;
y=yy;
dx=x+r;
dy=y;
while(dx-dy!=x-y&&dx+1-dy!=x-y)
{
a[ dy][ dx]=r%3+1;
a[2*y-dy][ dx]=r%3+1;
a[ dy][2*x-dx]=r%3+1;
a[2*y-dy][2*x-dx]=r%3+1;
a[ dx][ dy]=r%3+1;
a[ dx][2*y-dy]=r%3+1;
a[2*x-dx][ dy]=r%3+1;
a[2*x-dx][2*y-dy]=r%3+1;
l=(dx-1-x)*(dx-1-x)+(dy-y)*(dy-y)-r*r;
d=(dx-x)*(dx-x)+(dy-y+1)*(dy-y+1)-r*r;
dl=(dx-1-x)*(dx-1-x)+(dy-y+1)*(dy-y+1)-r*r;
l=l>=0?l:-l;
d=d>=0?d:-d;
dl=dl>=0?dl:-dl;
if(l<d&&l<dl)
dx--;
if(d<l&&d<dl)
dy++;
if(dl<d&&dl<l)
dx--,dy++;
}
}
pr();
}