Algorithm Bresenham线算法(厚度)

Algorithm Bresenham线算法(厚度),algorithm,line,pixels,thickness,Algorithm,Line,Pixels,Thickness,我想知道是否有人知道基于Bresenham的直线算法或任何类似的算法来绘制具有特定厚度的直线 再想一想,我一直在想我刚才画的每一个设定像素(x,y)的圆,例如: 填充圆(x,y,厚度);对于每一个x,y,但是那当然是非常缓慢的。我也试着用字典,但那会很快填满我的记忆。检查我将要绘制的像素是否具有相同的颜色,但这对于大型笔刷来说也不够有效 也许我可以根据角度画半圆 如有任何意见,将不胜感激 谢谢 复制:您实际上无法沿直线绘制圆。这种方法是: 您仍然可以阅读专利以获得灵感。我不知道常用的是什么,但在

我想知道是否有人知道基于Bresenham的直线算法或任何类似的算法来绘制具有特定厚度的直线

再想一想,我一直在想我刚才画的每一个设定像素(x,y)的圆,例如:

填充圆(x,y,厚度);对于每一个x,y,但是那当然是非常缓慢的。我也试着用字典,但那会很快填满我的记忆。检查我将要绘制的像素是否具有相同的颜色,但这对于大型笔刷来说也不够有效

也许我可以根据角度画半圆

如有任何意见,将不胜感激

谢谢


复制:

您实际上无法沿直线绘制圆。这种方法是:
您仍然可以阅读专利以获得灵感。

我不知道常用的是什么,但在我看来,您可以将Bresenham用于1像素宽的线条,但可以垂直或水平扩展一定数量的像素。例如,假设直线距离水平线大约30度,并且希望其宽度为4像素。计算线的垂直厚度应为五个像素。您运行Bresenham,但对于每个像素(x,y),您实际绘制(x,y),(x,y+1)。。。(x,y+4)。如果你想让线的两端变圆,在每一端画一个圆


对于过度杀戮,制作触针的像素贴图(圆形或对角笔尖,或其他),然后绘制一组平行的Bresenham线,触针中的每个像素对应一条

计算像素覆盖率的Bresenhams上有一些变化,例如库中使用的那些;不管你想要的是那种质量的东西,你都不会说输出介质是什么,而且大多数系统比开-关液晶显示器更能支持笔的厚度

像这样的专利是愚蠢的。那些人应该被枪毙。一个没有显示(1)专利发布日期和(2)专利到期日期的专利网站有什么意义?它不是专利。这是一项专利申请(尚未授予——也不应该授予)。来自未来的更新:专利申请已被放弃。希望@ryeguy没有拍到可怜的草皮。一条像素线实际上是一个1像素宽的矩形。绘制更宽的线时,可以使用任何多边形绘制算法。这不仅将阐明线的渲染方式,还将阐明如何处理线帽和抗锯齿(如果您选择)。