📜  使用多项式方法定义圆

📅  最后修改于: 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>