OpenGL 光柵化就是掃瞄轉換

2021-07-13 04:19:30 字數 626 閱讀 9752

dda演算法

dda(int x1,int y1,int x2,int y2)

}

bresenham演算法

就是說,下乙個選擇只有兩個選擇,如何選擇就看線段更靠近那個點

怎樣來衡量「靠近」呢?

對於已有的點p,其決策變數為d1,考慮下面兩種情況

情況2

否則,那麼下一次的決策變數

ps:如果d1是整數,那麼d2就是整數

儘管還有如下兩種情況,但實際上並無影響(應該是沒影響的吧)

那只要我們確定了決策變數的初值,之後的決策變數就都可以由整數運算的遞推公式得出

那麼對於初始點(x1,y1)

接下來的運算就都是整數了 =、=

內外點檢測

環繞數法

最後環繞數不為零,則該點為內部點

乙個很神奇的演算法

填充演算法####

flood_fill(int x,int y)

}

對於活動邊表 aet

OpenGL 多邊形的掃瞄轉換

一 理論 求交 計算掃瞄線與多邊形各邊的交點 排序 把所有交點按遞增順序進行排序 交點配對 第乙個與第二個,第三個與第四個 保證交點的個數為偶數個 區間填色 把這些相交區間內的畫素置成不同與背景色的填充色 在填充過程中應該考慮兩個問題 一是當掃瞄線與多邊形頂點相交時,交點的取捨問題。二是多邊形邊界上...

直線段掃瞄轉換演算法

數值微分 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表示象素的顏色和灰度。舉例 ...

直線的掃瞄轉換演算法

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