合并多个点旋风

 minoz-uuuu 发布于 2023-01-19 17:14

我有一个.wav文件,我正在使用ZedGraph绘制波形.我正在计算每秒的.wav文件的能量,如果能量小于4,我想用不同的颜色绘制样本.我创建了两个PointPairLlist并且LineItem这样做但是在合并这两个列表时存在问题.这是我的代码以及我的图表的显示方式.

LineItem myCurveAudio;
LineItem myCurveAudio2;
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
while(true)
{
for (int i = 0; i < fmainBuffer.Length; i++)
{
   float segmentSquare = fmainBuffer[i] * fmainBuffer[i];
   listOfSquaredSegment.Add(segmentSquare);
}
float energy = (float)Math.Sqrt(listOfSquaredSegment.Sum());
if (energy < 4)
{
    for (int i = 0; i < read; i += (int)window)
    {
       list1.Add((float)(count / ((float)read / (float)window)), fmainBuffer[i]);
       count++;
    }
}
else
{
   for (int i = 0; i < read; i += (int)window)
   {
       list4.Add((float)(count / ((float)read / (float)window)), fmainBuffer[i]);
       count++;
   }
}
}
zgc.MasterPane.PaneList[1].XAxis.Scale.MaxAuto = true;
zgc.MasterPane.PaneList[1].XAxis.Scale.MinAuto = true;
zgc.MasterPane.PaneList[1].XAxis.Type = AxisType.Linear;
zgc.MasterPane.PaneList[1].XAxis.Scale.Format = "";
zgc.MasterPane.PaneList[1].XAxis.Scale.Min = 0;
myCurveAudio = zgc.MasterPane.PaneList[1].AddCurve(null, list1, Color.Lime, SymbolType.None);
myCurveAudio2 = zgc.MasterPane.PaneList[1].AddCurve(null, list4, Color.Red, SymbolType.None);

在此输入图像描述 myCurveAudio和myCurveAudio2的线条如图所示相交.

如何合并这两个列表以防止这些交叉点?

我也尝试将`double.NaN添加到列表的末尾,但它不起作用.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有