文章目录
给定起点(x1,y1)和终点(x2,y2),直线的光栅化算法要找出哪些像素应该被着色。简单起见,这里假设x1<x2。
1.直观的方法
2.Bresenham算法
k = (y2 - y1) / (x2 - x1)
d = 0.5
n = y1
for m = x1 to x2
draw_point(m, n)
d -= k
if(d < 0.0)
n += 1
d += 1
2_delta_y = 2 * (y2 - y1)
2_delta_x = 2 * (x2 - x1)
d = x2 - x1
n = y1
for m = x1 to x2
draw_point(m, n)
d -= 2_delta_y
if(d < 0)
d += 2_delta_x
n += 1