超对称线算法?

Jaz*_*azz 10 java algorithm

我遇到了特殊情况,我需要在(x0,y0)到(x1,y1)的顺序中在2D网格中生成超对称线或光线,如下所示:

void drawSymmetricalLine(int x0, int y0, int x1, int y1)
{
    // loop and handle each (x, y)...
}
Run Code Online (Sandbox Code Playgroud)

实际问题在于流行的线条绘制算法不会绘制两个坐标(另一个标记为下面的x)的点,因为它看起来很粗,这在我的情况下是理想的.性能也不重要,但简单.

这就是我所说的超对称线条:

ox   ooo
 oo     ooo


o    o
 o    o
  o   o
       o
Run Code Online (Sandbox Code Playgroud)

Mik*_*e Q 4

您可能可以使用Bresenham 的直线算法并稍微修改它,以便当步骤更改以将绘制位置从一行移动到另一行时,您可以在当前 x 轴的 y 轴上绘制之前和之后的像素。