直線段掃瞄轉換演算法

2021-03-31 21:20:33 字數 684 閱讀 7649

數值微分(dda)法

設過端點p0(

x0,y

0)、p1

(x1,

y1

)的直線段為l(

p0,p

1),則直線段

l的斜率dda畫線演算法程式

void ddaline(int x0,int y0,int x1,int y1,int color)

}注意:我們這裡用整型變數color表示象素的顏色和灰度。

舉例:用dda方法掃瞄轉換連線兩點p0(0,0)和p1(5,2)的直線段。

xint(

y+0.5)

y+0.5

0     0        0

1     0     0.4+0.5

21      0.8+0.5

31     1.2+0.5

42      1.6+0.5

圖2.1.1 直線段的掃瞄轉換

注意:上述分析的演算法僅適用於

|k|

≤1的情形。在這種情況下,x每增加1,y最多增加1。當

|k|

> 1時,必須把x,

y地位互換,

y每增加1,

x相應增加1/k

。在這個演算法中,y與

k必須用浮點數表示,而且每一步都要對

y進行四捨五入後取整,這使得它不利於硬體實現。

直線的掃瞄轉換演算法

這是第一篇部落格,順便深入學習一下markdown語法。之後的圖形學文章都使用c 實現。數值微分法 中點畫線法 bresenham畫線演算法 數值微分法通過計算直線的斜率,計算每個x對應的y座標,並取畫素x,round y 本方法直觀可行,但執行效率低。由於每步都需要進行浮點乘法運算與捨入運算,故需...

多邊形掃瞄轉換演算法

1.多邊形的頂點表示轉換為多邊形的點陣表示 1 頂點表示 用多邊形的頂點的序列來描述多邊形,幾何意義強 佔記憶體少。2 點陣表示 用位於多邊形內的畫素的集合來描述多邊形。3 轉換基本思想 按掃瞄線順序,計算掃瞄線與多邊形的相交區間,再用要求的顏色顯示這些區間的所有象素 2.x掃瞄線演算法的演算法步驟...

直線掃瞄演算法

每次想寫點東西的時候,都不知道該寫點什麼,想起來在ai for game developer上看到使用bresenham演算法來做tile地形中的追逐和逃避演算法,正好可以寫點關於直線畫法的東西,這也是計算機圖形學中的基本圖元生成演算法了,還是比較簡單的。很多人都寫過,網上資料也很多,這裡也就不怕再...