void OLED_circle(uchar X,uchar Y,uchar R,uchar R1,uchar G1,uchar B1)
{//Bresenham算法
uchar a,b;
int c;
a=0;
b=R;
c=3-2*R;
while (a
{
OLED_dot(X+a,Y+b,R1,G1,B1); // 7
OLED_dot(X-a,Y+b,R1,G1,B1); // 6
OLED_dot(X+a,Y-b,R1,G1,B1); // 2
OLED_dot(X-a,Y-b,R1,G1,B1); // 3
OLED_dot(X+b,Y+a,R1,G1,B1); // 8
OLED_dot(X-b,Y+a,R1,G1,B1); // 5
OLED_dot(X+b,Y-a,R1,G1,B1); // 1
OLED_dot(X-b,Y-a,R1,G1,B1); // 4
if(c<0) c=c+4*a+6;
else
{
c=c+4*(a-b)+10;
b-=1;
}
a+=1;
OLED_dot(X+a,Y+b,R1,G1,B1);
}
/*if (a==b)
{
OLED_dot(X+a,Y+b,R1,G1,B1);
OLED_dot(X+a,Y+b,R1,G1,B1);
OLED_dot(X+a,Y-b,R1,G1,B1);
OLED_dot(X-a,Y-b,R1,G1,B1);
OLED_dot(X+b,Y+a,R1,G1,B1);
OLED_dot(X-b,Y+a,R1,G1,B1);
OLED_dot(X+b,Y-a,R1,G1,B1);
OLED_dot(X-b,Y-a,R1,G1,B1);
} */
}
这个函数不会有问题吧. |