在如有必要,交换两点[202302141825] 中,已经考虑了如果 x0 > x1 ,就交换起始点和终点,所以直线x的移动方向必然是从左往右。

接下来只需要确定直线 x 的范围:

直线 x 的最左侧是起始点 (x0, y0)的 x分量 x0

直线 x 的最右侧是终止点 (x1, y1)的 x分量 x1

Untitled

在代码中使用for循环来描述此表达式。

// 上一节的代码
// 确保 x0 <= x1
if (x0 > x1)
{
    swap(x0, x1);
    swap(y0, y1);
}
// 更新值
dx = x1 - x0;
dy = y1 - y0;

// 直线x的范围
for(int x = x0; x <= x1; x++)
{
}

该for循环的循环范围可以转换成一个数学表达式:

x0 ≤ x ≤ x1表示直线x的最左侧为x0,最右侧为x1

而直线 y的移动方向就需要进一步确定,下一节确定y的移动方向[202302151628] 介绍。