Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm Bresenham算法_Algorithm_Line_Pixel_Bresenham - Fatal编程技术网

Algorithm Bresenham算法

Algorithm Bresenham算法,algorithm,line,pixel,bresenham,Algorithm,Line,Pixel,Bresenham,可能重复: 如何使用Bresenham算法绘制超过一个像素厚的线? 我是否必须在与x和y偏移的情况下多次运行该算法?不,简单的方法是在算法产生的大于一个像素的每个(x,y)位置绘制一个模板,例如光盘 但这当然是低效的,因为你要多次绘制同一个像素。但是,它很容易实现,并且在奇偶形状或多色的模具上运行良好。您可以做的一件事是使用直线的坡度计算,即两个正交方向上的单位偏移量。将该值乘以厚度,并取两个端点处的偏移量。现在,可以有效地确定旋转矩形的边界。然后,使用快速多边形填充,而不是使用Bresenh

可能重复:

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

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


但这当然是低效的,因为你要多次绘制同一个像素。但是,它很容易实现,并且在奇偶形状或多色的模具上运行良好。

您可以做的一件事是使用直线的坡度计算,即两个正交方向上的单位偏移量。将该值乘以厚度,并取两个端点处的偏移量。现在,可以有效地确定旋转矩形的边界。然后,使用快速多边形填充,而不是使用Bresenham绘制直线。

多边形填充也可能使用Bresenham;)啊,是的,当它沿着边缘移动时:)是的,但是(a)奇怪形状的模具不是问题(b)透明度类a破坏东西(除非你想引入中间层)