// 5. Generate data. public void GenerateData(int columns, int rows) { // Create new IntensityPoint series for data. var data = new IntensityPoint[_columns, _rows]; // Disable rendering before updating chart properties to improve performance // and to prevent unnecessary chart redrawing while changing multiple properties. _chart.BeginUpdate(); // Set data values and add them to Heat Map. for (int i = 0; i < _columns; i++) { for (int j = 0; j < _rows; j++) { // Add values to the IntensityPoint series, points are generated by using following function. data[i, j].Value = 30.0 + 20 * Math.Cos(20 + 0.0001 * (double)(i * j)) + 70.0 * Math.Cos((double)(j - i) * 0.01); } } // Add generated data as Heat Map data. _heatMap.Data = data; // Call EndUpdate to enable rendering again. _chart.EndUpdate(); }
/// <summary> /// 温度云图上鼠标移动事件触发时应执行的操作 /// </summary> /// <param name="sender"></param> /// <param name="mouseX"></param> /// <param name="mouseY"></param> /// <param name="newCellColumn"></param> /// <param name="newCellRow"></param> /// <param name="nearestDataColumnIndex"></param> /// <param name="nearestDataRowIndex"></param> /// <param name="nearestCornerPoint"></param> /// <param name="nearestDataColumnCoord"></param> /// <param name="nearestDataRowCoord"></param> private void _intensityGrid_MouseTraceCellChanged(IntensitySeriesBase sender, int mouseX, int mouseY, int newCellColumn, int newCellRow, int nearestDataColumnIndex, int nearestDataRowIndex, IntensityPoint nearestCornerPoint, float nearestDataColumnCoord, float nearestDataRowCoord) { _traceCellColumnIndex = newCellColumn; _traceCellRowIndex = newCellRow; _traceNearestDataColumnIndex = nearestDataColumnIndex; _traceNearestDataRowIndex = nearestDataRowIndex; _traceNearestDataColumnCoord = nearestDataColumnCoord; _traceNearestDataRowCoord = nearestDataRowCoord; _nearestCornerPoint = nearestCornerPoint; _mouseX = mouseX; _mouseY = mouseY; UpdateTraceResultNormal(); }
public void TestFakeSaturatedPoints() { var intensityPointList = new List <IntensityPoint>(); for (var i = 0; i < 5; i++) { for (var j = 0; j < 5; j++) { var point = new IntensityPoint(i, j, 8925); intensityPointList.Add(point); } } var pointList = WaterShedMapUtil.BuildWatershedMap(intensityPointList).ToList(); var featureList = FeatureDetection.DoWatershedAlgorithm(pointList).ToList(); Console.WriteLine(DateTime.Now + "\tNumPoints = " + pointList.Count + "\tNumFeatures = " + featureList.Count); foreach (var featureBlob in featureList) { var mostIntensePoint = featureBlob.PointList.First(); Console.WriteLine("Num Points = " + featureBlob.PointList.Count + "\tLC = " + mostIntensePoint.ScanLc + "\tIMS = " + mostIntensePoint.ScanIms + "\tIntensity = " + mostIntensePoint.Intensity); } }
/// <summary> /// The verify frame number. /// </summary> /// <param name="point"> /// The point. /// </param> /// <param name="frameNumber"> /// The frame number. /// </param> /// <exception cref="InvalidOperationException"> /// </exception> public static void VerifyFrameNumber(IntensityPoint point, int frameNumber) { if (point.ScanLc != frameNumber) { throw new InvalidOperationException("Inconsistent FrameNumber for IntensityPointLists."); } }