我一直在网络上寻找一种算法,使您能够创建2D多边形的细节层次(LOD)表示,但无法找到任何像样的参考。也许我使用了错误的搜索词,但是所有的搜索结果都是用于3D LOD算法的,我猜,它们不能(?)真的应用在2D中。二维细节水平(LOD)算法
我相信在3D图形的冲击之前,很多人都会在2D LOD算法上工作。任何线索或指向我可以获取更多信息的地方?谢谢!
我一直在网络上寻找一种算法,使您能够创建2D多边形的细节层次(LOD)表示,但无法找到任何像样的参考。也许我使用了错误的搜索词,但是所有的搜索结果都是用于3D LOD算法的,我猜,它们不能(?)真的应用在2D中。二维细节水平(LOD)算法
我相信在3D图形的冲击之前,很多人都会在2D LOD算法上工作。任何线索或指向我可以获取更多信息的地方?谢谢!
除了明显的dumbest算法,它将从多边形中获取每个第N个顶点(减少顶点数N),这里有一个灵感来自于某些3D算法的想法。
通常,在3D中,需要去除对整体体积贡献较小的面。为此,我们尝试简化模型的“最平坦”区域。段Si与Si + 1之间
现在,在2D,你可以把这种以“简化它们之间的最小角度片段的第一天真的实现可能。多边形
当然,这不是最优的,但它应该是质量和速度之间的良好交易。取而代之的是角的,可采取两个段(PI + 1)的中间点和潜在地简化段之间的最小距离([P1,P1 + 2])
编辑:
另一种算法予会尝试,如果我不需要太多的性能:
最后,我发现了一些源代码,您链接:http://motiondraw.com/md/as_samples/t/LineGeneralization/demo.html,以及相关的算法:http://www.geom.unimelb.edu.au/gisweb/LGmodule/LGSimplification.htm
感谢您的建议。我认为我可以结合使用你所建议的算法和上面提到的Juraj来实现类似于我想要的东西。 +1。不幸的是,我不能将两个答案都标记为正确,因此将其标为正确,但Juraj建议的“Douglas-Peucker算法”同样好。 – tathagata 2010-12-17 10:47:08
是的,我不知道Ram道格拉斯Peucker算法,但我喜欢它。好的一点是,当你达到最大点数时,你可以很容易地停下来。 – 2010-12-17 11:39:33
为Douglas-Peucker algorithm搜索是用来简化折线,而是可以扩展到支持多边形。这是我用过的。如果你需要的话,还有拓扑稳定的扩展。
+1让我知道这个很酷的算法。这可能工作,但我必须在我的上下文中检查它。这是我在这个问题中没有提到的一件事,但我不知道如何用文字解释这一点,但看到我对上述主要问题的评论。 – tathagata 2010-12-17 10:34:38
有趣的,也许寻找形状简化,图像抽象,甚至压缩?对于LOD有什么要求?如同意愿图像会缩小?性能,是为了节省内存还是深度模拟? – 2010-12-16 12:52:07
我正在寻找提高现有(遗留)算法的性能。从本质上讲,我想要一个合理的“收缩包装”逼近多边形,保留主要外部特征,并隐藏内部细节。对于建议的关键字+1。谢谢! – tathagata 2010-12-17 10:39:25