計算機掃瞄直線原理:
直線方程: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 可以看到,這個過程涉及大量的浮點運算,效率上是比較低的 特別是在嵌入式應用中...