Hình – Các vị trí đối xứng trên đường tròn (C) tương ứng với (x,y) Như vậy nếu có (x, y) Î (C1/8) thì các điểm : (y, x), (y,-x), (x,-y), (-x,-y), (-y,-x), (-y,x), (-x,y) sẽ thuộc (C). Chọn điểm bắt đầu để vẽ là điểm (0,R). Dựa vào hình vẽ, nếu ở bước thứ i, thì điểm là điểm nguyên đã tìm được | Hình - Đường tròn vẽ ra không liền nét theo cách vẽ trên . Thuật toán MidPoint Do tính đối xứng của đường tròn C nên ta chỉ cần vẽ cung C1 8 là cung 1 8 đường tròn sau đó lấy đối xứng. Cung C1 8 được mô tả như sau cung của phần tô xám trong hình vẽ Hình - Các vị trí đối xứng trên đường tròn C tưong ứng với x y Như vậy nếu có x y ỉ C1 8 thì các điểm y x y -x x -y -x -y -y -x -y x -x y sẽ thuộc C . Chọn điểm bắt đầu để vẽ là điểm 0 R . Dựa vào hình vẽ nếu tat là điểm nguyên đã tìm được ở bước thứ i thì điểm ta 1 Í I ở bước thứ i 1 là sự lựa chọn giữa S và P. h i 1. Í 1 Gwi M Tưong tự như thuật toán MidPoint vẽ đoạn thẳng việc quyết định chọn một trong hai điểm S và P sẽ được thực hiện thông qua việc xét dấu của một hàm nào đó tại điểm MidPoint là điểm nằm giữa chúng. Hình - Thuật toán MidPoint vẽ đường tròn Đặt x v R ta có ũ. nểíj ÍK y nầm trong duửng tròn ũ nểú ÍK. Jnâm trỂn duủng trốn ũ nểíi Ỳ nằm ngoài duửng trủn. PỄ MidPoint fI -Xét 1 2 . Ta có Nếu điểm MidPoint nằm trong đường tròn Lúc này điểm thực Q gần S hon nên ta chọn S tức là yỂ . Ngược lại nếu - ÍJ điểm MidPoint nằm ngoài đường tròn Lúc này điểm thực Q gần P horn nên ta chọn P tức tè Ể 1 1. Mặt khác nếu do ta chọn Vậy Pt 1 2yỄ 5 nếu PỄ 2 .1 do ta chọn 1 i 1 Ta tính giá trị ứng với điểm ban đầu ta Vo Po pL U 4h . Lưu đồ thuật toán MidPoint vẽ đường tròn void Put8Pixel int x int y Cài đặt minh họa thuật toán MidPoint vẽ đường tròn Ve 8 diem doi xung putpixel x y Color putpixel y x Color