2

可能重复:
如何使用 Bresenham 创建任意厚度的线?

如何使用 Bresenham 算法绘制超过一个像素厚的线条?我是否必须在 x 和 y 偏移的情况下多次运行该算法?

4

2 回答 2

2

不,简单的方法是在算法生成的每个 (x, y) 位置绘制一个模板,该位置大于一个像素,例如圆盘。

但这当然是低效的,因为您多次绘制相同的像素。然而,它很容易实现,并且即使是奇形怪状或多色的模板也能很好地工作。

于 2011-05-01T21:01:06.867 回答
2

您可以做的一件事是使用线的斜率进行计算,这是两个正交方向上的单位偏移量。将其乘以您的厚度,并在两个端点处进行偏移。您现在有效地获得了旋转矩形的边界。然后,不要使用 Bresenham 绘制线条,而是使用快速多边形填充。

于 2011-05-01T21:03:26.527 回答