Esempio n. 1
0
        public static void GenerateSignal(FunctionData data)
        {
            data.Points.Clear();

            var interval = data.Duration.Value / (data.Samples.Value - 1);

            for (var i = 0; i < data.Samples.Value; i++)
            {
                var x = i * interval;
                try
                {
                    var y = data.Function(data, x);

                    if (Math.Abs(y) < 10E-10)
                    {
                        y = 0d;
                    }

                    data.Points.Add(new Point(x, y));
                }
                catch (DivideByZeroException)
                {
                    // Everything is fine, we just don't add this point
                }
            }

            data.Points.Sort(); // No idea why I put it here, seems not to have any influence, but better don't remove.

            data.CalculateParameters();
            data.PointsUpdate();
            Histogram.GetHistogram(data);
        }