中點Bresenham畫圓

2021-07-30 23:47:45 字數 765 閱讀 4878

這裡不仔細講原理,只是把我寫的演算法發出來,跟大家分享下,如果有錯誤的話,還請大家告訴我,如果寫的不好,也請指出來,一起討論進步。

演算法步驟:

(1) 輸入圓的半徑r。

(2) 計算初始值d = 1 - r, x  = 0; y = r。

(3) 繪製點(x, y), 及其在八分圓中的另外7個對稱點。

(4) 判斷d的符號,若d < 0, 則先將d更新為d+2*x+3,再將(x,y)更新為(x+1, y),否則將d更新為d+2*(x - y) + 5,再將(x, y)更新為(x+1, y-1)。

(5) 當x <= y時,重複步驟(3)和(4),否則結束。

下面是畫圓演算法:

#include void init (void)

void drawcircle (int radius, int x1, int y1)

else

++ x;

} glend ();

glpopmatrix ();

}void display (void)

void reshape (int w, int h)

else

glmatrixmode (gl_modelview);

glloadidentity ();

}void keyboard (unsigned char key, int x, int y)

}int main (int argc, char ** argv)

Bresenham演算法畫圓

下面先簡要介紹常用的畫圓演算法 bresenham演算法 然後再具體闡述筆者對該演算法的改進。乙個圓,如果畫出了圓上的某一點,那麼可以利用對稱性計算餘下的七段圓弧 plot x,y plot y,x plot y,x plot x,y plot x,y plot y,x plot y,x plot ...

中點bresenham演算法畫線

要求 使用中點bresenham演算法繪製任意斜率的直線。可用滑鼠左鍵繪製直線 左鍵按下點為起點,彈起點為終點 新建mfc專案 畫線需要滑鼠響應,所以在view類中新增onlbuttonup和onlbuttondown來進行滑鼠訊息的處理 方法 滑鼠右擊檢視類 如cmymouseview 選擇 ad...

基於Bresenham演算法畫圓

bresenham演算法畫圓思想與上篇 bresenham演算法畫線段 思想是一致的 畫圓x 2 y 2 r 2 將他分為8個部分,如上圖 1.只要畫出1中1 8圓的圓周,剩下的就可以通過對稱關係畫出這個圓 x變化從0 r 那為什麼不採用從 r r呢,y sqrt r 2 x 2 dy dx x s...