直線掃瞄 Bresenham演算法

2021-05-23 20:45:49 字數 512 閱讀 4391

計算機掃瞄直線原理:

直線方程:y=kx+b           y-kx-b=0

在第一象限畫線 (x0,y0)->(x1,y1)

當前點pi (xi , yi)  

則下一點必為p1(xi +1, yi) 或  p2( xi +1, yi+1)。

理想直線靠近哪個點,就取那個點。

推導:令f(x,y)=y-kx-b,那麼理想直線上方有f>0,下方f<0.

取p1 p2中點m(xi +1, yi+0.5),

則f(m)<0,m在f下,應該取p2 ;反之取p1 ;

令di=f(mi)=yi+0.5-k(xi +1)-b

則di<0時第i+1個點 pi+1(xi +1, yi+1)

di+1=di+1-k

di>0時  pi+1(xi +1, yi)

di+1=di-k

d0=0.5-k

由以上遞推公式可以確定每乙個畫素點座標,從而畫出直線。

優化(只需要d的符號): 為正

計算機掃瞄直線Bresenham演算法

計算機掃瞄直線原理 直線方程 y kx b y kx b 0 在第一象限畫線 x0,y0 x1,y1 當前點pi xi yi 則下一點必為p1 xi 1,yi 或 p2 xi 1,yi 1 理想直線靠近哪個點,就取那個點。推導 令f x,y y kx b,那麼理想直線上方有f 0,下方f 0.取p1...

Bresenham直線演演算法

法,它會算出一條線段在 n 維光柵上最接近的點。這個演演算法只會用到較為快速的整數加法 減法和位元移位,常用於繪製電腦畫面中的直線。是計算機圖形學中最先發展出來的演演算法。經過少量的延伸之後,原本用來畫直線的演演算法也可用來畫圓。且同樣可用較簡單的算術運算來完成,避免了計算二次方程式或三角函式,或遞...

Bresenham快速畫直線演算法

一 演算法原理簡介 演算法原理的詳細描述及部分實現可參考 假設以 x,y 為繪製起點,一般情況下的直觀想法是先求m dy dx 即x每增加1,y的增量 然後逐步遞增x,設新的點為x1 x j,則y1 round y j m 可以看到,這個過程涉及大量的浮點運算,效率上是比較低的 特別是在嵌入式應用中...