畫線演算法是由
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 時候的演...