.net 实时波形图
我正试图想出一个好的设计来在.Net中绘制实时波形。每x毫秒添加一个样本,当波形位于页面末尾时,它会重置为开始,并开始覆盖现有波形(如ECG心率监视器中的波形) 在过去,我是用一种非常简单的方法来做这件事的:只需以固定的间隔为每个样本绘制一个像素。虽然这样做很好,但当我尝试添加任何类型的背景时,我很快就遇到了麻烦,例如:网格。当采样/像素与网格重叠时,在第二次扫描时清除它会变得复杂,因为不能仅用白色像素覆盖它 也许使用WPF代替Winforms会更容易,因为我可以将波形作为一个元素,当我移动元素时,背景应该自动保留/重画.net 实时波形图,.net,wpf,graphics,gdi+,waveform,.net,Wpf,Graphics,Gdi+,Waveform,我正试图想出一个好的设计来在.Net中绘制实时波形。每x毫秒添加一个样本,当波形位于页面末尾时,它会重置为开始,并开始覆盖现有波形(如ECG心率监视器中的波形) 在过去,我是用一种非常简单的方法来做这件事的:只需以固定的间隔为每个样本绘制一个像素。虽然这样做很好,但当我尝试添加任何类型的背景时,我很快就遇到了麻烦,例如:网格。当采样/像素与网格重叠时,在第二次扫描时清除它会变得复杂,因为不能仅用白色像素覆盖它 也许使用WPF代替Winforms会更容易,因为我可以将波形作为一个元素,当我移动元素
如何解决此问题?您可以将曲线放入控件属性中的(或)中
<Canvas>
<Path Stroke="Black" StrokeThickness="3">
<Path.Data>
<PathGeometry>
<PathFigure x:Name="figure" IsClosed="False">
<PathFigure.Segments>
<PolyLineSegment x:Name="polyline"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>
figure.StartPoint = ...;
polyline.Points.RemoveAt(...);
polyline.Points.Add(...);