我们有一些折线(点的列表,具有起始和结束点,不是循环的)和多边形(点的列表,循环的,没有所谓的端点)。
我们希望将每条折线映射到一条新的折线,每个多边形映射到一个新的多边形,以使总边数足够小。
假设原始边数为N,我们希望结果边数为M。 N远大于M。
折线需要保留它们的起始点和结束点,因此它们至少贡献1条边,比它们的顶点数少1。多边形仍然需要是多边形,因此它们至少贡献3条边,等于它们的顶点数。 M将至少足够满足此要求。
输出应尽可能接近输入。这将成为最小化某些度量以在真正的最优解的某些小容差内的优化问题。最初我将使用原始和结果的对称差异的面积(面积之间),但如果其他指标更易于完成,则愿意接受替代方案。
如果结果只包括原始顶点,则可以。适合会稍微差一些,但为了保持时间复杂性,可能是必要的。
由于我正在寻求算法,因此还可以看到实现。我可能需要为将要使用它的地方重新实现它,因此诸如语言或数据结构之类的细节不太重要。
至于近似度需要多好,大约可以从位图图像获取矢量图像。这里的实际用途是游戏工具,有一些特定游戏的奇怪细节,因此输出边数是固定的而不是容差。
很难找到这种事情的任何信息,因此即使没有提供完整的可行算法,一些指针也将非常感激。
我们希望将每条折线映射到一条新的折线,每个多边形映射到一个新的多边形,以使总边数足够小。
假设原始边数为N,我们希望结果边数为M。 N远大于M。
折线需要保留它们的起始点和结束点,因此它们至少贡献1条边,比它们的顶点数少1。多边形仍然需要是多边形,因此它们至少贡献3条边,等于它们的顶点数。 M将至少足够满足此要求。
输出应尽可能接近输入。这将成为最小化某些度量以在真正的最优解的某些小容差内的优化问题。最初我将使用原始和结果的对称差异的面积(面积之间),但如果其他指标更易于完成,则愿意接受替代方案。
如果结果只包括原始顶点,则可以。适合会稍微差一些,但为了保持时间复杂性,可能是必要的。
由于我正在寻求算法,因此还可以看到实现。我可能需要为将要使用它的地方重新实现它,因此诸如语言或数据结构之类的细节不太重要。
至于近似度需要多好,大约可以从位图图像获取矢量图像。这里的实际用途是游戏工具,有一些特定游戏的奇怪细节,因此输出边数是固定的而不是容差。
很难找到这种事情的任何信息,因此即使没有提供完整的可行算法,一些指针也将非常感激。