// 参考https://rosettacode.org/wiki/Bitmap/Bresenham%27s_line_algorithm#C中的代码
int dx = abs(Xb - Xa),
dy = abs(Yb - Ya);
int sx = Xa < Xb ? 1 : -1,
sy = Ya < Yb ? 1 : -1;
int err = (dx > dy ? dx : -dy) / 2, err_t;
int pk = 0;
while(1){
saveLinePoint(Xa, Ya, out);
if (Xa == Xb && Ya == Yb) {
break;
}
err_t = err;
if (err_t > -dx) {
err -= dy;
Xa += sx;
}
if (err_t < dy) {
err += dx;
Ya += sy;
}
}
Bresenham算法画直线
最新推荐文章于 2024-07-08 16:40:13 发布