前置知识:熟悉直线边界的概念,熟悉三目运算符

有了直线x后,还需要一条直线y,它们共同确定要绘制的点的坐标。先来看 直线 y 的起始值。

直线 y 的 起始值是 起点 (x0, y0)的 y分量: y0

Untitled

在代码中将这样定义直线 y:

int y = y0;// 直线y当前在y轴上的位置
for (int x = x0; x <= x1; x++)
{
}

但是别忘了我们有两种标准斜率标准斜率[202302141842] !对于第二种标准斜率来说,情况是这样的,

Untitled

直线y 将从点A开始,向下移动,直到点B。

因此另一种情况就是直线 y 在 直线y0的下方移动:

Untitled

为了确定直线 y到底是向上 还是向下移动,我们需要比较 起始点 (x0, y0)和 终止点 (x1,y1)的 y分量。

int y = y0;// 直线y当前在y轴上的位置

if(y1 > y0)
	y += 1;
else
	y -= 1;

for (int x = x0; x <= x1; x++)
{
}

当 y1 > y0,说明直线 y 需要向上移动,每次移动1个单位

当 y0 > y1,说明直线 y 需要向下移动,每次移动1个单位