当前位置: 代码迷 >> 单片机 >> 单片机 LCD C语言画弧线的程序,哪位高手会
  详细解决方案

单片机 LCD C语言画弧线的程序,哪位高手会

热度:298   发布时间:2016-04-28 16:04:24.0
单片机 LCD C语言画弧线的程序,谁会?
C语言画   弧线的程序,谁会?   不要带大量重复sin或者cos的,那样会很慢。下面画圆的程序可以改成画弧形的程序吗?
大侠们,出手吧!


提供一个画圆的程序:

1. view   sourceprint?    
2.   //   八对称性        
3.    
4. inline   void   _draw_circle_8(IMAGE   *img,   int   xc,   int   yc,   int   x,   int   y,   unsigned   long   c)      
5. {        
6.         //   参数   c   为颜色值        
7.         putpixel(img,   xc   +   x,   yc   +   y,   c);        
8.         putpixel(img,   xc   -   x,   yc   +   y,   c);        
9.         putpixel(img,   xc   +   x,   yc   -   y,   c);      
10.         putpixel(img,   xc   -   x,   yc   -   y,   c);        
11.         putpixel(img,   xc   +   y,   yc   +   x,   c);      
12.         putpixel(img,   xc   -   y,   yc   +   x,   c);        
13.         putpixel(img,   xc   +   y,   yc   -   x,   c);        
14.         putpixel(img,   xc   -   y,   yc   -   x,   c);        
15. }              
16.    
17.   //Bresenham 's   circle   algorithm        
18. void   draw_circle(IMAGE   *img,   int   xc,   int   yc,   int   r,   int   fill,   unsigned   long   c)    
19. {        
20.         //   (xc,   yc)   为圆心,r   为半径        
21.         //   fill   为是否填充        
22.         //   c   为颜色值              
23.         //   如果圆在图片可见区域外,直接退出        
24.    
25.         if(xc   +   r   <   0   ||   xc   -   r   > =   img-> w   ||   yc   +   r   <   0   ||   yc   -   r   > =   img-> h)      
26.         {    
27.                 return;    
28.         }    
29.    
30.         int   x   =   0,   y   =   r,   yi,   d;        
31.                 d   =   3   -   2   *   r;        
32.    
33.         if(fill)    
34.         {        
35.                 //   如果填充(画实心圆)        
36.                 while(x   <=   y)      
  相关解决方案