算法來平滑曲線
回答
您可以使用Douglas-Peucker算法來減少點的數量和保存的曲線形狀。可以找到C#實現here
它似乎是exaclty我正在尋找 – Guillaume07
我寫了一個道格拉斯 - 皮克算法的動畫的答案,如果你有興趣... http://stackoverflow.com/a/36937976/2836621 –
我不是一個專業人士,但我認爲你可以做到這一點,沒有任何着名的算法。 以下是我認爲(只是一個原則,我不知道在哪個類,你保存你做點):
Collection<float> ListOfValues = new Collection<float>();
float minimalValueDistance = 0.5f;
var listWithoutAdjacentPoints = ListOfValues.Where(x =>
{
int indexOfValue = ListOfValues.IndexOf(x);
// only considering the distance from the left
if (indexOfValue > 0 && Math.Abs(x - ListOfValues[indexOfValue - 1]) > minimalValueDistance)
return true;
else
return false;
});
以及行爲曲線中的每個點如何相互分離,其值
我認爲你想刪除這些點?!?或者我不明白你的問題?你說過,你想「去除相鄰點過於緊密(根據數值[...])」。由於「太接近」非常不明確,我爲此實施了一個變量。所以你可以將它設置爲一個常量值,或者計算代碼中的值。例如 –
採取minimalValueDistance = 1,你可以有這樣一條曲線:1,5,9,10,11,13,19,20 =>至極會變成1,5,9,10,13,19,但是發生了什麼如果你有1,2,3,4,5,6? – Guillaume07
- 1. Python平滑曲線
- 2. 平滑曲線在Python
- 3. R:完美平滑曲線
- 4. 如何平滑曲線
- 5. 繪圖R,曲線平滑
- 6. gnuplot的:平滑曲線
- 7. 繪製平滑曲線
- 8. C++中的曲線平滑
- 9. 平滑貝塞爾曲線
- 10. 迭代平滑曲線
- 11. 平滑算法,不會錯過鐘形曲線
- 12. 刪除扭曲和平滑曲線
- 13. 計算平均曲線
- 14. 平滑算法2.5D
- 15. 如何計算平滑曲線的斜率中的R
- 16. Matlab - 平滑曲線中的彎曲和鋸齒線
- 17. iPhone - 創建最平滑的曲線
- 18. 平滑手繪貝塞爾曲線
- 19. 僅平滑曲線的一部分
- 20. 如何平滑曲折線的邊緣?
- 21. 沒有用gnuplot得到平滑曲線
- 22. 尋找最平滑的曲線的15%
- 23. 按鈕中的平滑曲線
- 24. 三次/曲線平滑插補
- 25. 水平曲線滑動菜單
- 26. 算法以平滑的曲線,同時保持其下的面積恆定
- 27. 有沒有一種方法來平滑曲線的文本,在Matlab?
- 28. 燃油表平滑算法
- 29. 「平滑」隨機數算法
- 30. 平滑算法與Android
爲什麼不計算可以說5個點的平均值,而只繪製平均值? – Jan
@Jan:因爲如果我在兩個相鄰點之間有很大的差距,我不想只畫一個點到平均值。在這種情況下,我想畫兩點。 – Guillaume07
這不是一個真正的編程問題。嘗試在Math Exchange上查找適當的算法。 –