算法来平滑曲线
回答
您可以使用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上查找适当的算法。 –