Bresenham 畫線演算法

2021-04-22 10:06:35 字數 1118 閱讀 5141

畫線演算法是由

bresenham

提出的一種精確而有效的光柵線生成演算法,該演算法僅僅使用了

整數的增量來實現的。

bresenham

演算法將對整形引數的符號檢測,整形引數的值比於實際險段之間的偏量。

bresenham

演算法內容

對於直線方程a,

斜率時候的演算法

輸入線段的兩個端點

point1

和point2

,並且儲存到

point1(x1,y1)

和point2(x2,y2)中;將

point1

載入楨快取,繪畫第乙個起始點;

計算常量△x、△

y、2△

y和2(△

y-△x),並且獲得乙個決策引數的第乙個值:

p = 2△△

x;從n = 0

開始,在沿線經過每個

xn處,進行下面的監測:如果

下乙個點繪製的是

(xn+1,yn)

,並且pn+1= pn + 2△y

如果p0>= 0 ,

下乙個點繪製的是

(xn+1,yn+1)

,並且pn+1 = pn + 2

(△y-△x

)重複執行

△x-1次步驟

4;關於在c++

中的演算法如下例項:

#include

using namespace std;

void bresenham(int x1,int y1,int x2,int y2)

else

//達因第乙個起始點

cout<<"point: x:"if(p < 0)

else

cout<<"point: x:"<}

}int main()

b,斜率

或這斜率

時候的演算法

對於斜率

=0或者斜率

=1時候,不需要通過演算法直接的對於其中單一座標變數進行處理就可以。

斜率的情況演算法

將起始點和中止點座標

point1

和point2

交換,可以轉化到斜率為0和

1之內的演算法去實現。

Bresenham畫線演算法

bresenham畫線演算法 bresenham演算法是計算機圖形學領域使用最廣泛的直線掃瞄轉換演算法。仍然假定直線斜率在0 1 之間,該方法類似於中點法,由乙個誤差項符號決定下乙個象素點。演算法原理如下 過各行各列象素中心構造一組虛擬網格線。按直線從起點到終點的順序計算直線與各垂直網格線的交點,然...

Bresenham 畫線演算法

bresenham 畫線演算法是由 bresenham 提出的一種精確而有效的光柵線生成演算法,該演算法僅僅使用了 整數的增量來實現的。bresenham 演算法將對整形引數的符號檢測,整形引數的值比於實際險段之間的偏量。bresenham 演算法內容 對於直線方程 y kx b a 0 斜率 1 ...

Bresenham 畫線演算法

bresenham 畫線演算法是由bresenham提出的一種精確而有效的光柵線生成演算法,該演算法僅僅使用了 整數的增量來實現的。bresenham演算法將對整形引數的符號檢測,整形引數的值比於實際險段之間的偏量。bresenham演算法內容 對於直線方程 y kx b a,0 斜率 1 時候的演...