大家好,
我正在努力完成布雷森汉姆线方程的算法。
我得到的输出是黑色的输出,预期的输出是白色的。bresenham 算法用于打印矩形中间的两条对角线。有人可以纠正我的代码以修复它。
笔记:
bx 等价于 x2 和 super.x x1 与 y 类似。
public void draw( char [][] matrix ) {
yCoord = super.y;
xCoord = super.x;
deltaX = Math.abs(bx - xCoord);
deltaY = Math.abs(by - yCoord);
int sx = xCoord < bx ? 1 : -1;
int sy = yCoord < by ? 1 : -1;
delta = deltaX - deltaY;
int err2;
while (true) {
matrix[xCoord][yCoord] = '*';
if (xCoord == bx || yCoord == by) {
break;
}
err2 = 2*delta;
if (err2 > -deltaY) {
delta -= deltaY;
xCoord += sx;
} else if (err2 < deltaX) {
delta += deltaX;
yCoord += sy;
}
}
}