我遇到特殊情况,我需要按照这样从(x0,y0)到(x1,y1)的顺序在2D网格中产生超对称线或射线:
void drawSymmetricalLine(int x0,int y0,int x1,int y1) { // loop and handle each (x,y)... }
实际的问题在于,流行的线条图算法不会绘制两个坐标(另一个标记为x),因为它似乎变厚,这在我的情况下是需要的.性能也不重要,但简单.
这就是我所说的超对称线:
ox ooo oo ooo o o o o o o o
解决方法
您可以使用
Bresenham’s line algorithm并稍微修改,以便当步骤更改将绘制位置从一行移动到另一列时,您可以为当前x轴在y轴上绘制前后像素.