直线的光栅化算法


给定起点(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

猜你喜欢

转载自blog.csdn.net/qq_34562355/article/details/90607761