Bresenham 算法在所有八分圆中绘制直线

Bresenham's algorithm drawing straight lines in all the octants

我目前正在学习图形入门课程,我正在学习如何使用 Bresenham 算法绘制直线。现在我必须承认,我的学习习惯包括 google 搜索额外的笔记,因为有时 class 笔记是不够的。

我知道使用一般的 Bresenham 算法,您通常可以绘制第一个八分圆,而为了绘制其他八分圆,您必须做一些花哨的技巧。

现在,我真正的问题涉及如何理解在第七个八分圆中画一条线背后的概念。根据这些注释

https://courses.engr.illinois.edu/ece390/lecture/potts/lecture17_6pps.pdf

我在网上找到的(请参阅第 14 页和第 15 页,以便在该 pdf 中更清楚地了解)如果你想绘制第七个八分圆,你必须交换 x1、y1 和 x2、y2;然后将 X 递增 -1,最后将像素设置为 set_pixel(y,x)。然而,这就是我的困惑所在,在第 14 页上显示了一个在第七八分圆中绘制的示例,为什么 dx 等于 正 6 而不是负 6?不是 dx x2 - x1 吗?

距离是坐标差的绝对值。我认为在 a later version of the same slides(幻灯片 9)中,他们将其更改为 dx=|X2-X1|,这是正确的表示法。