這裡不仔細講原理,只是把我寫的演算法發出來,跟大家分享下,如果有錯誤的話,還請大家告訴我,如果寫的不好,也請指出來,一起討論進步。
演算法步驟:
(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...