Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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 用最少的矩形填充多边形_Algorithm_Language Agnostic_Computational Geometry - Fatal编程技术网

Algorithm 用最少的矩形填充多边形

Algorithm 用最少的矩形填充多边形,algorithm,language-agnostic,computational-geometry,Algorithm,Language Agnostic,Computational Geometry,我正在尝试渲染多边形,但它们只能使用轴对齐的矩形进行渲染。因此,我正在寻找一种基本上可以使用尽可能少的矩形来填充多边形的算法。如果有助于减少数量,则允许矩形彼此重叠 我已经实现了,基本上已经足够了。缺点是它将矩形限制到每个像素行。我最终希望尽可能减少矩形的数量。在某些特殊情况下,当多边形由大矩形组成时,删除该限制(每个矩形的高度为一个像素)会有所帮助,但在一般情况下则完全没有帮助 这样如何:使用该算法,但尽可能地向上和向下扩展每个矩形,当所有矩形都就位时,消除多余的矩形 还有一点需要改进的地方,

我正在尝试渲染多边形,但它们只能使用轴对齐的矩形进行渲染。因此,我正在寻找一种基本上可以使用尽可能少的矩形来填充多边形的算法。如果有助于减少数量,则允许矩形彼此重叠

我已经实现了,基本上已经足够了。缺点是它将矩形限制到每个像素行。我最终希望尽可能减少矩形的数量。

在某些特殊情况下,当多边形由大矩形组成时,删除该限制(每个矩形的高度为一个像素)会有所帮助,但在一般情况下则完全没有帮助

这样如何:使用该算法,但尽可能地向上和向下扩展每个矩形,当所有矩形都就位时,消除多余的矩形


还有一点需要改进的地方,在一些非常罕见的情况下,消除冗余矩形的顺序可能很重要,但老实说,我认为不值得为一个实际的解决方案担心。

多边形的像素表示与直线多边形相同,您可以非常快地对其进行分割。请参阅此问题的答案。

我从问题中假设多边形是像素化的?一个基于向量的多边形将不能被任何数量有限的轴对齐矩形填充,除非在特殊情况下……当我考虑它时,我可以将行视为一组矩形,然后应用中建议的方法。