// 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();
        }
Пример #2
0
 /// <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();
 }
Пример #3
0
        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.");
     }
 }