DDA演算法畫直線

2021-05-10 19:24:24 字數 498 閱讀 2864

畫直線的**,適合所有斜率的直線

void cmyview::linedda(cdc *pdc, int x0, int y0, int x1, int y1, colorref clr)

while (y <= ymax)

return; }

if (y0 == y1)//

水平線

while (x <= xmax)

return; }

double dx = x1 - x0;

double dy = y1 - y0;

double k = dy / dx;

double x = x0, y = y0;

double xmax = x1, ymax = y1;

if (k <= 1 && k >= -1)

for (; x <= xmax; ++x)

} else

for (; y <= ymax; ++y) } }

dda演算法畫直線 再談繪製直線

之前已經在 從零開始計算機圖形學 之七畫線 寫過繪製直線了,現在再來仔細的看一下這個問題。tinyrenderer github.com void line int x0,int y0,int x1,int y1,tgaimage image,tgacolor color 這裡的問題有兩個 t取大了...

畫直線演算法

畫直線演算法 前段時間做了一下光柵直線生成演算法的研究,並且在vc下實現了dda 演算法 bresenham 演算法 對稱演算法 兩步演算法 及四步演算法。這裡給個總結,希望和大家交流。主要研究的演算法主要有 dda演算法 bresenham 演算法 對稱演算法 兩步演算法 及四步演算法,此外還對自...

cpp實現直線的DDA演算法

給定起始點,輸出直線在兩點之內所經過的畫素點的位置。比如輸入 輸出起點x值 0 輸出起點y值 0 輸出終點x值 5 輸出終點y值 2 輸出結果 0,0 1,0 2,1 3,1 4,2 5,2 如下 include using namespace std 直線的dda演算法 typedef struc...