我有一个需要采取一个二维图形的n个点,并减少它的r点(其中r是一个小于n的具体数字)。例如,我可能有两个数据集,总点数略有不同,例如1021和1001,我想强制这两个数据集有1000个点。我知道一些简化算法:Lang Simplification和Douglas-Peucker。我在以前的项目中使用过Lang,但需求略有不同。图形简化算法建议需要
我找了该算法的具体性能为:
1)必须保留线的形状
2)必须让我减少数据集点的具体数量
3)相对较快
这篇文章讨论了不同算法的优点。我将发布第二条消息,提供有关Java或Groovy实现方面的建议(为什么重新发明轮子)。
我很关心上面的要求2。我在这些算法中不够专业,无法知道我是否可以决定输出点的确切数量。我使用过的Lang的实现将lookAhead,tolerance和Points数组作为输入,所以我不知道如何规定输出中的点数。这是我目前需求的关键要求。也许这是由于我们使用了Lang的具体实现,但是我没有在网络上看到关于Lang的大量信息。或者,我们可以使用Douglas-Peucker,但我不确定输出中的点数是否可以指定。
我应该加我不是这些类型的算法或任何类型的数学知识的专家,所以我正在寻找凡人类型的建议:)我如何满足上述要求1和2?我会牺牲正确的解决方案的性能。
对于2d图,你的意思是类似于`y = f(x)`的近似值,其中`x [i]
6502
2011-02-05 12:39:38