Beispiel #1
0
        /// <summary>
        /// Helper method to set up frequency plots (does frequency transform)
        /// </summary>
        /// <param name="freqSettings"> Settings for frequency transform. </param>
        private void FreqPlotSetup(FreqPlotSettings freqSettings)
        {
            double xAxisRange = xAxisMax - xAxisMin;

            freqTransVals = new List <List <PointD> >();
            List <double>  transformTempRowIn  = new List <double>();
            IList <double> transformTempRowOut = new List <double>();

            foreach (PointD point in plotData[0].Points())
            {
                transformTempRowIn.Add(point.Y);
            }
            while (true)
            {
                transformTempRowIn = new List <double>(freqSettings.WaveOption
                                                       .Transform(transformTempRowIn, out transformTempRowOut));
                if (transformTempRowIn.Count == 0)
                {
                    break;
                }
                freqTransVals.Add(new List <PointD>());
                double xPosition = xAxisMin + xAxisRange / (2.0d * transformTempRowOut.Count);
                foreach (double freqVal in transformTempRowOut)
                {
                    freqTransVals.Last().Add(new PointD(xPosition, freqVal));
                    xPosition += xAxisRange / transformTempRowOut.Count;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Method to set up this form and GUI elements based on the supplied PlotSettings
        /// </summary>
        /// <param name="plotSettings"> Input PlotSettings. </param>
        /// <param name="plotMode"> Plotting mode. </param>
        public void Configure(List <PlotSettings> plotSettings, int plotMode)
        {
            this.plotMode = plotMode;

            // Read in general 2D data
            plotData   = new List <PlottableData>();
            plotColors = new List <Color>();
            foreach (PlotSettings settings in plotSettings)
            {
                plotData.Add(new PlottableData(settings));
                if (plotData.Last().XMin < xAxisMin)
                {
                    xAxisMin = plotData.Last().XMin;
                }
                if (plotData.Last().XMax > xAxisMax)
                {
                    xAxisMax = plotData.Last().XMax;
                }
                if (plotData.Last().YMin < yAxisMin)
                {
                    yAxisMin = plotData.Last().YMin;
                }
                if (plotData.Last().YMax > yAxisMax)
                {
                    yAxisMax = plotData.Last().YMax;
                }
            }

            // Perform additional mode-specific behavior
            if (plotMode == 0)
            {
                IEnumerator <PlotSettings> settingsEnumerator = plotSettings.GetEnumerator();
                DataPlotSetup(settingsEnumerator);
            }
            else if (plotMode == 1)
            {
                FreqPlotSettings freqSettings = (FreqPlotSettings)plotSettings[0];
                FreqPlotSetup(freqSettings);
            }
        }