我正在尝试渲染多边形,但它们只能使用轴对齐的矩形进行渲染。所以,我正在寻找一种基本上可以使用最少可能数量的矩形填充多边形的算法。如果它有助于减少数量,则允许矩形相互重叠。
我已经实施了this fill algorithm,这大部分就足够了。垮台是它限制每个像素行的矩形。我最终希望尽可能减少矩形的数量。
答案 0 :(得分:1)
多边形的像素表示与直线多边形相同,您可以非常快速地对其进行分区。请参阅此question的答案。
答案 1 :(得分:0)
删除该限制(每个矩形的高度为一个像素)有助于在多边形由大矩形构成时的某些特殊情况,但在一般情况下根本不存在。
如何:使用该算法,但尽可能多地向上和向下延伸每个矩形,并且当所有矩形都到位时,消除多余的矩形。
还有一点改进的余地,因为在一些非常罕见的情况下消除冗余矩形的顺序可能很重要,但说实话,我认为不值得担心寻求切实可行的解决方案。