我正在测量一些系统性能数据以将其存储在数据库中。从这些数据点,我随着时间的推移绘制折线图。从本质上讲,这些数据点有点嘈杂,即。每个点都至少偏离局部平均值。当从一个点直接绘制线图到下一个点时,它会产生锯齿状的图形。在像每个像素 > 10 个数据点这样的大时间尺度上,这种噪声被压缩成一个宽的锯齿线区域,即 20 像素高而不是较小尺度的 1 像素。
我读过关于线条平滑、抗锯齿、简化和所有这些东西。但我发现的一切似乎都与别的东西有关。
我不需要抗锯齿,.NET 在屏幕上画线时已经为我做到了。
我不想简化。我需要极端值保持可见,至少其中大部分是可见的。
我认为它朝着样条曲线的方向发展,但我找不到太多示例图像来评估所描述的东西是否是我想要的。不过,我确实在 Google Books 上找到了一本高度科学的书,里面全是半页长的公式,我现在不想读完……
举个例子,看看 Linux/Gnome 的系统监视器应用程序。我用平滑线绘制了最近的 CPU/内存/网络使用情况。这可能有点过于简单,但我会尝试一下,看看我是否可以调整它。
我更喜欢 C# 代码,但算法或其他语言的代码也可以,只要我可以将其移植到 C# 而不需要外部引用。