- /****************************************
- 对称法画圆的8个镜像点
- *****************************************/
- void CircleDot(unsigned char x,unsigned char y,char xx,char yy,unsigned char Color)//内部函数,对称法画圆的8个镜像点
- {
- Lcd_PutPixel((x+yy),(y+xx),Color);//第 1 个 8 分圆
- Lcd_PutPixel((x+xx),(y+yy),Color);//第 2 个 8 分圆
- Lcd_PutPixel((x-xx),(y+yy),Color);//第 3 个 8 分圆
- Lcd_PutPixel((x-yy),(y+xx),Color);//第 4 个 8 分圆
- Lcd_PutPixel((x-yy),(y-xx),Color);//第 5 个 8 分圆
- Lcd_PutPixel((x-xx),(y-yy),Color);//第 6 个 8 分圆
- Lcd_PutPixel((x+xx),(y-yy),Color);//第 7 个 8 分圆
- Lcd_PutPixel((x+yy),(y-xx),Color);//第 8 个 8 分圆
- }
- /******************************************
- 向LCD指定圆心坐标画一个半径为r的指定颜色的圆
- *******************************************/
- void Lcd_Circle(unsigned char x,unsigned char y,unsigned char r,unsigned char Color)//中点法画圆
- {//中点法画圆
- unsigned char xx,yy;
- char deltax,deltay,d;
- xx=0;
- yy=r;
- deltax=3;
- deltay=2-r-r;
- d=1-r;
- CircleDot(x,y,xx,yy,Color);//对称法画圆的8个镜像点
- while (xx
- {
- if (d<0)
- {
- d+=deltax;
- deltax+=2;
- xx++;
- }
- else
- {
- d+=deltax+deltay;
- deltax+=2;
- deltay+=2;
- xx++;
- yy--;
- }
- CircleDot(x,y,xx,yy,Color);//对称法画圆的8个镜像点
- }
- }
|