问题标签 [curvesmoothing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
11317 浏览

algorithm - 如何“平滑”数据并计算线梯度?

我正在从测量距离的设备中读取数据。我的采样率很高,因此我可以测量距离(即速度)的大变化,但这意味着,当速度较低时,设备会提供许多相同的测量值(由于设备的粒度)。这导致“阶梯式”曲线。

我需要做的是平滑曲线以计算速度。之后我需要计算加速度。

如何最好地解决这个问题?

(采样率高达1000Hz,10Hz的计算率就可以了。在VS2005中使用C#)

0 投票
5 回答
81931 浏览

matlab - 如何在 MATLAB 中平滑绘图?

我在图表上绘制了大约 9000 个点:

[全分辨率]

替代文字

其实剧情并没有我想的那么流畅。有什么方法可以将图表平滑到所需的程度?

或者某种形式的阈值,以便我可以选择性地平滑过于颠簸的部分?

我不确定,但快速傅立叶变换可以提供帮助吗?

0 投票
3 回答
7750 浏览

android - Android 绘画/画布问题;绘制平滑曲线

在 Android 中,当我用手指在触摸屏上绘图时,如何获得平滑的曲线而不是圆点或圆?我正在使用以下代码-

0 投票
1 回答
1648 浏览

wolfram-mathematica - 在 Mathematica 中使用插值函数进行卷积

我正在使用 Mathematica 7。

我有一个插值函数,这是一个例子:

我想计算它的导数,这很简单:

现在,如果你绘制这个函数

(抱歉,不知道如何从 Mathematica 中发布图像,也没有时间弄清楚。)你会发现它非常嘈杂。所以,我想把它弄平。我的第一个想法是使用 Convolve,并将其与高斯核集成,如下所示:

退货

这在我看来是合理的。不幸的是,我相信我在某个地方犯了错误,因为我得到的结果似乎无法评估。那是:

退货

这不是我想要的,我期待一个介于 -1 和 1 之间的数字。

0 投票
0 回答
862 浏览

iphone - 如何在 iPhone 上绘制流畅的草图

可能重复:
iPhone 平滑草图绘制算法

我想开发一个支持素描的 iPhone 应用程序。

我在 touchesMoved 中使用了一些这样的代码:

看:

曲线不平滑

曲线不够平滑。

我尝试过使用 sourceforge.net/projects/curve/files/ 中的一些代码的 Catmull-Rom Spline 方法

看:

平滑曲线

这次曲线更加平滑,但有两个问题:

  1. Catmull-Rom Spline 使用许多三次贝塞尔曲线段和二次贝塞尔曲线段来形成曲线。二次贝塞尔曲线段无法确定触摸何时结束。在用户将手指从屏幕上移开之前,我无法绘制二次线段。我只能在用户绘图时绘制立方线段,所以他会感到有些延迟。当手指快速移动时,曲线滞后于手指。

  2. 该算法对角的校正过多,因此用户无法绘制具有尖角的星星。

我非常希望为 Autodesk 的“Sketch Book”应用程序等用户提供一个非常好的绘图环境。(见下图)

看:

非常光滑

该应用程序提供了平滑的曲线,它还允许我绘制一个带有尖角的星星。

我怎样才能在 iPhone 上做到这一点?我可以使用哪种算法来获得像“Sketch Book”这样的高质量?有什么代码供我参考吗?

谢谢!!

0 投票
1 回答
3275 浏览

python - 在 PyPlot 中绘制具有大 Y 值的平滑曲线

对于以下数据,我正在遵循此问题中给出的建议:

虽然它适用于该问题中的数据,但由于某种原因,使用此数据,它会中断:

我该如何解决?对于算法来说,这似乎是非常容易拟合的数据。

0 投票
1 回答
523 浏览

html - HTML5 Canvas - 二次曲线的意外效果

我最近一直在开发一个涂鸦应用程序,只是为了好玩。在尝试了许多方法用鼠标给出的样本点绘制平滑曲线之后,我已经确定了使用二次曲线的东西。

我必须承认,我对这些曲线的理解不是最佳的,但我想我理解它们是如何工作的。我无法理解的是,当我绘制一条上升然后突然下降的曲线时,曲线的峰值不再是圆形的(它看起来很平坦)。

一个演示可以更好地理解我在说什么:链接到 JCanvas 沙箱

如果删除曲线的最后一部分(从 cx11 到 y15):链接到另一个 JCanvas 沙箱。看起来不错,但是当你添加下一个控制点和结束点时,你会得到这个奇怪的效果。

注意:我没有使用 JCanvas,但它有相同的错误并且沙箱很方便。我想它来自我得到的坐标,但我无法解释,也找不到解决方法/黑客让它看起来圆润......

对于那些不关心沙盒的人,这里是导致问题的坐标的简短版本:

x1:216,y1:98,cx1:216,cy1:97,x2:216,y2:98,cx2:216,cy2:99,x3:215,y2:103,

关于为什么的任何想法?数学的东西是受欢迎的。我已经对这个问题进行了一些搜索和阅读,但没有找到任何类似的东西。

--

更新

正如 Simon 指出的那样,我使用的是 Chrome 16,并且我已经使用 Firefox 4 和最新的 Safari 测试了该示例,并且存在错误。我尝试使用 Opera,它看起来不错。

我对此感到非常沮丧,因为该错误也出现在 iPad 上,而我正在尝试做一个移动网络应用程序,所以我有点卡住了。

任何解决方法/黑客的想法?

0 投票
3 回答
429 浏览

r - 由于多个系列没有足够的数据点,loess 方法在数据帧上失败

我有一个数据框是这样的:

输入(xx)

这个数据框很大,它有很多主机。我面临的挑战是,当像上面这样的主机没有足够的数据点时,下面的 ggplot 会失败,基本上是抱怨没有足够的数据点来绘制图表。

如何检查并查看此数据框中的特定主机是否有超过 10 个数据点,如果是,请使用 method="loess"。如果主机的数据点数小于 10,则使用 method="lm"

0 投票
0 回答
78 浏览

histogram - 如何增加直方图拟合曲线上的点数?

我在 MATLAB 中有一个直方图,并想适应它。我可以使用 histfit 来做到这一点,但我一直得到一个固定大小的拟合曲线,即 100。我的意思是曲线上总是有 100 个点。我该如何改变?我想增加点数使拟合曲线更平滑?此外,我的 MATLAB 中没有曲线拟合工具箱。我会很感激任何帮助,谢谢。

0 投票
2 回答
2637 浏览

matlab - 如何在matlab中修圆曲线(去除尖角)

假设有两条曲线(由两组数据描述):曲线1和曲线2。这两条曲线有两个以上的交点。保留两条曲线的上半部分,得到一条新的曲线3。问题是曲线3的交点处有几个尖角。如何使用matlab通过对这些角进行四舍五入来平滑曲线?