Vẽ đường tròn

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Vẽ đường tròn

Bài gửi by anbinhtrong on Wed Dec 16, 2009 3:34 pm

Chú ý là ta vẽ đường tròn tại tâm (0,0) sau đó tịnh tiến đi 1 đoạn P.x,P.y với P là tọa độ tâm đề bài cho.
Code:
void put8pixel(int x, int y,Point &P)
{
   glBegin(GL_POINTS);
      glVertex2d(x+P.x,y+P.y);
      glVertex2d(-x+P.x,y+P.y);
      glVertex2d(x+P.x,-y+P.y);
      glVertex2d(-x+P.x,-y+P.y);
      glVertex2d(y+P.x,x+P.y);
      glVertex2d(-y+P.x,x+P.y);
      glVertex2d(y+P.x,-x+P.y);
      glVertex2d(-y+P.x,-x+P.y);
   glEnd();
   glFlush();
}

void swap(int &a,int &b)
{
   int tg=a;
   a=b;
   b=tg;
}

void Circle(Point &P, int R)
{
   int x=0,y=R;
   int p=1-R;   
   put8pixel(x,y,P);
   while(x<y)
   {
      if(p<0)
         p=p+2*x+3;
      else
      {
         p=p+2*(x-y)+5;
         y--;
      }
      x++;
      put8pixel(x,y,P);
   }
}
avatar
anbinhtrong
Admin
Admin

Tổng số bài gửi : 216
Join date : 05/11/2009
Age : 28
Đến từ : BT

Xem lý lịch thành viên http://ngoctho.forum-viet.net

Về Đầu Trang Go down

Re: Vẽ đường tròn

Bài gửi by anbinhtrong on Wed Dec 16, 2009 3:53 pm


The midpoint circle algorithm of Bresenham [Bre77] and [BGP83] is analogously to that of straight lines and goes as follows:

and in the next step:


One can speed up things be calculating the linear increments recursively.
avatar
anbinhtrong
Admin
Admin

Tổng số bài gửi : 216
Join date : 05/11/2009
Age : 28
Đến từ : BT

Xem lý lịch thành viên http://ngoctho.forum-viet.net

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết