2017-07-26 86 views
-1

我想用Bresenham的线算法或类似的方法从四个点创建一个填充的矩形,以获得平滑的边。我在Stack Overflow [link]上遇到了这个答案,它非常适合在两点之间创建一条线。我如何使用/修改这个函数来创建一个填充矩形?有没有其他算法可以更好地满足我的需求?使用Bresenham的线算法或类似的方法来填充一个矩形

+0

一个矩形将永远适合像素,你不需要平滑的anithing,可能是你的意思是一个四边形? – Gusman

+1

@Gus:旋转的Rectangle仍然是一个矩形。 – TaW

+0

您可以先创建矩形,然后进行填充。这真的取决于你正在瞄准哪种基元。 – TaW

回答

0

对于任意旋转的矩形:

:这说明如下wiki Wu's implementation有用于沿OX轴环,但它是更有效的绘制沿OY轴边缘和填充水平线。通过

排序顶点的X坐标
使由顶点
分离对于每一个间隔,横轴的时间间隔选择上和下边缘
同时执行吴的antaliasing绘制为上部和下部边缘

对于上边缘拉伸上部半透明像素

draw: plot(ipart(intery) , x, rfpart(intery)) 

并忽略底部像素,用作填充线的开始它的位置

LineFrom(ipart(intery)+1, x) 

对于下边缘绘制底部半透明像素和上使用作为填充线

重新初始化边缘图的端到达角时。