爱嘉牛LA

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
View Code
void Bresenham_Circle(int xc,int yc,int r){//xc,yc是圆的中心坐标 
    int x,y,d;
    y=r;
    d=3-2*r;
    x=0;
    while(x<=y){
        plotC(x,y,xc,yc);//画点 
        if(d<0)
           d+=4*x+6;
        else{
            d+=4*(x-y)+10;
            y=y-1;
        }
        x=x+1; 
    }
} 
void plotC(int x,int y,int xc,int yc){//x,y是圆上点的坐标,xc,yc是圆心坐标
    //根据圆的对称性绘出个对称点
    glColor3f(0.5,0.9,0.7);
    glBegin(GL_POINTS);
    
    //绘制对称的8个点 
    glVertex2i(xc+x,yc+y);
    glVertex2i(xc+x,yc-y);
    glVertex2i(xc-x,yc+y);
    glVertex2i(xc-x,yc-y);
    glVertex2i(xc+y,yc+x);
    glVertex2i(xc+y,yc-x);
    glVertex2i(xc-y,yc+x);
    glVertex2i(xc-y,yc-x);
    
    glEnd();
    
}

 

posted on 2012-10-24 21:18  爱嘉牛LA  阅读(275)  评论(0编辑  收藏  举报