private void DrawCompareWave()
{
//关闭日期标志
selectDateFlag = false;
//标志已经启用对比功能
compareFlag = true;
//获取该风机点的风速集合
compareWindSpeedList = FanPointDAL.GetWindSpeedOrWindDirectionOfSinglePoint(FanPointDAL.Type.风速, windFieldOfCompareFan.BranchTableName, cmbWindFieldName.SelectedItem.ToString(), cmbWindFanNumber.SelectedItem.ToString(), startTime, endTime);
//获取该风机点的风向集合
compareWindDirectionList = FanPointDAL.GetWindSpeedOrWindDirectionOfSinglePoint(FanPointDAL.Type.风向, windFieldOfCompareFan.BranchTableName, cmbWindFieldName.SelectedItem.ToString(), cmbWindFanNumber.SelectedItem.ToString(), startTime, endTime);
//获取风速最大值和最小值
compareWindSpeedMaxAndMin = new double[2];
compareWindSpeedMaxAndMin = FanPointDAL.GetMaxMinDataOfSinglePoint(FanPointDAL.Type.风速, windFieldOfCompareFan.BranchTableName, cmbWindFieldName.SelectedItem.ToString(), cmbWindFanNumber.SelectedItem.ToString(), startTime, endTime);
//获取风向最大值和最小值
compareWindDirectionMaxAndMin = new double[2];
compareWindDirectionMaxAndMin = FanPointDAL.GetMaxMinDataOfSinglePoint(FanPointDAL.Type.风向, windFieldOfCompareFan.BranchTableName, cmbWindFieldName.SelectedItem.ToString(), cmbWindFanNumber.SelectedItem.ToString(), startTime, endTime);
//获取比较之后的风速最大值和最小值
speedMax = GetMax(windSpeedMaxAndMin[0], compareWindSpeedMaxAndMin[0]);
speedMin = GetMin(windSpeedMaxAndMin[1], compareWindSpeedMaxAndMin[1]);
//获取比较之后的风向最大值和最小值
directionMax = GetMax(windDirectionMaxAndMin[0], compareWindDirectionMaxAndMin[0]);
directionMin = GetMin(windDirectionMaxAndMin[1], compareWindDirectionMaxAndMin[1]);
//重新构建时间集合
//将原始风机的时间加入新集合
allDate = new List <DateTime?>();
for (int i = 0; i < dateTimeCollection.Count; i++)
{
dateTimeCollection[i] = dateTimeCollection[i].Value.Date;
allDate.Add(dateTimeCollection[i].Value.Date);
}
//将对比风机的时间加入新集合
for (int i = 0; i < compareDateTimeCollection.Count; i++)
{
compareDateTimeCollection[i] = compareDateTimeCollection[i].Value.Date;
if (allDate.Contains(compareDateTimeCollection[i].Value.Date) == false)
{
allDate.Add(compareDateTimeCollection[i].Value.Date);
}
}
allDate = allDate.OrderBy(d => d.Value.Date).ToList();//对日期排序
//绘制风速图形
Draw.DrawGrid(cvsWindSpeed, "#FF95310C");//此方法有清空canvas的操作
Draw.DrawWord(cvsWindSpeed, this.CompanyName, this.WindFieldName, this.FanNumber, speedMax, speedMin, "#FF95310C", "(米/秒)", allDate, compareDateTimeCollection);
Draw.DrawCompareCurve(cvsWindSpeed, windSpeedList, speedMax, speedMin, "#FF95310C", allDate, dateTimeCollection);
Draw.DrawCompareCurve(cvsWindSpeed, compareWindSpeedList, speedMax, speedMin, "#FF104B00", allDate, compareDateTimeCollection);
//绘制风向图形
Draw.DrawGrid(cvsWindDirection, "#FF4D056E");//此方法有清空canvas的操作
Draw.DrawWord(cvsWindDirection, this.CompanyName, this.WindFieldName, this.FanNumber, directionMax, directionMin, "#FF4D056E", "(度)", allDate, compareDateTimeCollection);
Draw.DrawCompareCurve(cvsWindDirection, windDirectionList, directionMax, directionMin, "#FF4D056E", allDate, dateTimeCollection);
Draw.DrawCompareCurve(cvsWindDirection, compareWindDirectionList, directionMax, directionMin, "#FF104B00", allDate, compareDateTimeCollection);
}