能给个画圆或者画圆弧的C程序吗?讲一下思路原理也可以,谢谢啦

来源:百度知道 编辑:UC知道 时间:2024/07/02 12:19:47

这是我做过的,你试试

#include<stdio.h>
#include<graphics.h>
#define PATH "c:\\TC30\\BGI"
int x0,y0;

void Bresenham_Circle(int r,int color)
{
int x,y,delta,delta1,delta2,direction;
x=0;
y=r;
delta=2*(1-r);
while(y>=0)
{
putpixel(x+x0,y+y0,color);
putpixel(x0-x,y0-y,color);
putpixel(x0-x,y+y0,color);
putpixel(x+x0,y0-y,color);
if(delta<0)
{
delta1=2*(delta+y)-1;
if(delta1<=0)
direction=1;
else
direction=2;
}
else
{
if(delta>0)
{
delta2=2*(delta-x)-1;
if(delta2<=0)
direction=2;
else
direction=3;
}
else
direction=2;
}
switch(direction)
{
case 1:x++;
delta+=2*x+1;
break;
case 2:x++;
y--;
delta+=2*(x-y+1);