-1
我想用Bresenham的线算法或类似的方法从四个点创建一个填充的矩形,以获得平滑的边。我在Stack Overflow [link]上遇到了这个答案,它非常适合在两点之间创建一条线。我如何使用/修改这个函数来创建一个填充矩形?有没有其他算法可以更好地满足我的需求?使用Bresenham的线算法或类似的方法来填充一个矩形
我想用Bresenham的线算法或类似的方法从四个点创建一个填充的矩形,以获得平滑的边。我在Stack Overflow [link]上遇到了这个答案,它非常适合在两点之间创建一条线。我如何使用/修改这个函数来创建一个填充矩形?有没有其他算法可以更好地满足我的需求?使用Bresenham的线算法或类似的方法来填充一个矩形
对于任意旋转的矩形:
注:这说明如下wiki Wu's implementation有用于沿OX轴环,但它是更有效的绘制沿OY轴边缘和填充水平线。通过
排序顶点的X坐标
使由顶点
分离对于每一个间隔,横轴的时间间隔选择上和下边缘
同时执行吴的antaliasing绘制为上部和下部边缘
对于上边缘拉伸上部半透明像素
draw: plot(ipart(intery) , x, rfpart(intery))
并忽略底部像素,用作填充线的开始它的位置
LineFrom(ipart(intery)+1, x)
对于下边缘绘制底部半透明像素和上使用作为填充线
重新初始化边缘图的端到达角时。
一个矩形将永远适合像素,你不需要平滑的anithing,可能是你的意思是一个四边形? – Gusman
@Gus:旋转的Rectangle仍然是一个矩形。 – TaW
您可以先创建矩形,然后进行填充。这真的取决于你正在瞄准哪种基元。 – TaW