我有一個需要採取一個二維圖形的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