如何确定绘制的点:

当目标线段是”陡的”,说明这条线段经过了两步直线是不是陡的[202302141813] 如有必要,交换两点[202302141825] 处理,此时需要绘制的点是 (y, x) 。如果不是“陡的”,就直接绘制 (x, y)

bool is_steep = false;
//.....

for(int x = x0; x <= x1; x++)
{
		is_steep ? image.set(y, x, color) : image.set(x, y, color);
}

这段代码是在使用Bresenham算法绘制线条的过程中,当判断斜率大于45度后,需要将直线进行y=x对称,所以这里需要交换x和y的值。在绘制线条的过程中,每次根据x的遍历来计算对应的y坐标,并使用is_steep这个标志位来判断当前的点是使用交换前的x和y来绘制还是使用交换后的x和y来绘制。如果is_steep为true,就代表需要绘制的直线斜率大于45度,此时交换后的y就代表需要绘制的坐标。所以如果is_steep为true,使用image.set(y, x, color)来绘制当前点的颜色,否则使用image.set(x, y, color)来绘制。