📅  最后修改于: 2020-12-20 09:31:18             🧑  作者: Mango
第一种方法使用二阶多项式方程式定义一个圆,如图所示:
y 2 = r 2 -x 2
其中x = x坐标
y = y坐标
r =圆半径
第一步:设置初始变量
r =圆半径
(h,k)=圆心坐标
x = o
I =步长
x结束=
步骤2:测试以确定是否已对整个圆进行了扫描转换。
步骤3:计算y =
步骤4:绘制关于当前(x,y)坐标中心(h,k)对称找到的八个点。
绘图(x + h,y + k)绘图(-x + h,-y + k)
绘图(y +="" h,-x="" h,-y="" h,x="" h,y="" k)<="" k)
绘图(-x="" k)
绘图(-y="" k)绘图(-y="" k)绘图(x="" k)绘图(y="" p="">
步骤5:递增x = x + i
步骤6:转到步骤(ii)。
#include
#include
#include
voidsetPixel(int x, int y, int h, int k)
{
putpixel(x+h, y+k, RED);
putpixel(x+h, -y+k, RED);
putpixel(-x+h, -y+k, RED);
putpixel(-x+h, y+k, RED);
putpixel(y+h, x+k, RED);
putpixel(y+h, -x+k, RED);
putpixel(-y+h, -x+k, RED);
putpixel(-y+h, x+k, RED);
}
main()
{
intgd=0, gm,h,k,r;
double x,y,x2;
h=200, k=200, r=100;
initgraph(&gd, &gm, "C:\\TC\\BGI ");
setbkcolor(WHITE);
x=0,y=r;
x2 = r/sqrt(2);
while(x<=x2)
{
y = sqrt(r*r - x*x);
setPixel(floor(x), floor(y), h,k);
x += 1;
}
getch();
closegraph();
return 0;
}
输出:
绘图(y>