Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 如何使用 Bresenham 创建任意厚度的线?
如何使用 Bresenham 算法绘制超过一个像素厚的线条?我是否必须在 x 和 y 偏移的情况下多次运行该算法?
不,简单的方法是在算法生成的每个 (x, y) 位置绘制一个模板,该位置大于一个像素,例如圆盘。
但这当然是低效的,因为您多次绘制相同的像素。然而,它很容易实现,并且即使是奇形怪状或多色的模板也能很好地工作。
您可以做的一件事是使用线的斜率进行计算,这是两个正交方向上的单位偏移量。将其乘以您的厚度,并在两个端点处进行偏移。您现在有效地获得了旋转矩形的边界。然后,不要使用 Bresenham 绘制线条,而是使用快速多边形填充。