示例#1
0
        private void DrawHeatMap(int robotId)
        {
            if (TeamMatesDisplayDictionary.ContainsKey(robotId))
            {
                if (TeamMatesDisplayDictionary[robotId].heatMap == null)
                {
                    return;
                }
                //heatmapSeries.DataSeries = new UniformHeatmapDataSeries<double, double, double>(data, startX, stepX, startY, stepY);
                double xStep             = (TerrainUpperX - TerrainLowerX) / (TeamMatesDisplayDictionary[robotId].heatMap.GetUpperBound(1) + 1);
                double yStep             = (TerrainUpperY - TerrainLowerY) / (TeamMatesDisplayDictionary[robotId].heatMap.GetUpperBound(0) + 1);
                var    heatmapDataSeries = new UniformHeatmapDataSeries <double, double, double>(TeamMatesDisplayDictionary[robotId].heatMap, TerrainLowerX, yStep, TerrainLowerY, xStep);

                // Apply the dataseries to the heatmap
                heatmapSeries.DataSeries = heatmapDataSeries;
                heatmapDataSeries.InvalidateParentSurface(RangeMode.None);
            }
        }
        protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);

            if (e.PropertyName == SciChartSurfaceView.ChartSeriesProperty.PropertyName)
            {
                switch (Element.ChartSeries.SeriesType)
                {
                case RenderableSeriesType.Line:
                {
                    var dataSeries = ((LineRenderableSeries)Element.ChartSeries).DataSeries as XYDataSeries <int, int>;

                    samplesDataSeries = new XyDataSeries <int, int>();
                    if (dataSeries.FifoCapacity > 0)
                    {
                        samplesDataSeries.FifoCapacity = (Java.Lang.Integer)dataSeries.FifoCapacity;
                    }

                    Control.RenderableSeries.Add(new FastLineRenderableSeries {
                            DataSeries = samplesDataSeries
                        });
                    break;
                }

                case RenderableSeriesType.Column:
                {
                    var dataSeries = ((ColumnRenderableSeries)Element.ChartSeries).DataSeries as XYDataSeries <int, int>;

                    fftDataSeries = new XyDataSeries <int, int>();
                    if (dataSeries.FifoCapacity > 0)
                    {
                        fftDataSeries.FifoCapacity = (Integer)dataSeries.FifoCapacity;
                    }

                    Control.RenderableSeries.Add(new FastColumnRenderableSeries {
                            DataSeries = fftDataSeries, ZeroLineY = -30
                        });
                    break;
                }

                case RenderableSeriesType.Heatmap:
                {
                    spectrogramDataSeries = new UniformHeatmapDataSeries <int, int, int>(1024, 1024);

                    Control.RenderableSeries.Add(new FastUniformHeatmapRenderableSeries {
                            DataSeries = spectrogramDataSeries
                        });
                    break;
                }

                default:
                    break;
                }
            }

            if (e.PropertyName == SciChartSurfaceView.XAxesProperty.PropertyName)
            {
                foreach (var commonAxis in Element.XAxes)
                {
                    switch (commonAxis.AxisType)
                    {
                    case AxisType.NumericAxis:
                        Control.XAxes.Add(CommonAxisToNative(commonAxis));
                        break;

                    default:
                        break;
                    }
                }
            }

            if (e.PropertyName == SciChartSurfaceView.YAxesProperty.PropertyName)
            {
                foreach (var commonAxis in Element.YAxes)
                {
                    switch (commonAxis.AxisType)
                    {
                    case AxisType.NumericAxis:
                        Control.YAxes.Add(CommonAxisToNative(commonAxis));
                        break;

                    default:
                        break;
                    }
                }
            }
        }