Example #1
0
        protected override void FillList()
        {
            Left  = InpFunction.Left;
            Right = InpFunction.Right;

            float omega = (float)((Math.PI) / InpFunction.QuantumAbs);//(float)((Math.PI) * nu);

            for (float i = Left; i < Right; i += QuantumAbs)
            {
                var sum = 0d;
                foreach (var item in InpFunction)
                {
                    if (i - item.X == 0)
                    {
                        sum += item.Y;
                        continue;
                    }
                    var coeff = omega * (i - item.X);
                    sum += item.Y * ((float)Math.Sin(coeff) / coeff);
                }
                if (!OnlyResult)
                {
                    OnNewPoint?.Invoke(this, new FuncEventArgs(new System.Drawing.PointF(i, (float)sum)));
                }



                Add(new System.Drawing.PointF(i, (float)sum));
            }
        }
Example #2
0
 protected override void FillList()
 {
     for (int i = 0; i < _inpData.Count; i++)
     {
         OnNewPoint?.Invoke(this, new FuncEventArgs(new System.Drawing.PointF(i, (float)_inpData[i].Magnitude)));
     }
 }
Example #3
0
 protected void NewPoint(string lineID, int index, Vector3 pos)
 {
     if (OnNewPoint != null)
     {
         OnNewPoint.Invoke(lineID, index, pos);
     }
 }
Example #4
0
 protected override void FillList()
 {
     ComplexArray   = new List <Complex>();
     FurieRowCoeffs = new Dictionary <string, float>();
     for (int i = 0; i <= funcseg.garmonicCount; i++)
     {
         var sumCos = 0f;
         var sumSin = 0f;
         for (int j = 0; j < funcseg.Count - 1; j++)
         {
             sumCos += funcseg[j].Y * (float)Math.Cos(i * omega * j * dt);
             sumSin += funcseg[j].Y * (float)Math.Sin(i * omega * j * dt);
         }
         var resSin = (2 / (float)funcseg.Count) * sumSin;
         var resCos = (2 / (float)funcseg.Count) * sumCos;
         FurieRowCoeffs.Add($"a{i} {funcGroup}", resSin);
         FurieRowCoeffs.Add($"b{i} {funcGroup}", resCos);
         ComplexArray.Add(new Complex(resCos, resSin));
         if (!OnlyResult)
         {
             OnNewPoint?.Invoke(this, new FuncEventArgs(new System.Drawing.PointF(i, resSin)));
             OnNewPoint?.Invoke(this, new FuncEventArgs(new System.Drawing.PointF(i, resCos)));
         }
     }
 }
Example #5
0
 protected override void FillList()
 {
     foreach (var item in listOfHarminics)
     {
         var p = new PointF(item.Key, (float)item.Value.Phase);
         Add(p);
         OnNewPoint?.Invoke(this, new FuncEventArgs(p));
     }
 }
Example #6
0
        protected override void FillList()
        {
            AddRange(inpf);
            if (QuantumOrd != 0)
            {
                var MaxOrd = this.Max((d) => d.Y);
                var MinOrd = this.Min((d) => d.Y);
                var modMax = MaxOrd % QuantumOrd;
                var modMin = MinOrd % QuantumOrd;
                MaxOrd = MaxOrd > 0 ? MaxOrd - modMax : MaxOrd + modMax;
                MinOrd = MinOrd > 0 ? MinOrd + modMin : MinOrd - modMin;
                var quantumGridArray = new List <float>();
                var mantissa         = 0;
                try
                {
                    mantissa = QuantumOrd.ToString().Split(',')[1].Count();
                }
                catch (Exception)
                {
                }
                for (float i = MinOrd; i <= MaxOrd; i += QuantumOrd)
                {
                    quantumGridArray.Add(i);
                }
                for (int i = 0; i < Count; i++)
                {
                    var modNear = this[i].Y % QuantumOrd;
                    var curNear = this[i].Y - modNear;

                    foreach (var bound in quantumGridArray)
                    {
                        if (Math.Round(curNear, mantissa) == Math.Round(bound, mantissa))
                        {
                            if (modNear > QuantumOrd / 2)
                            {
                                PointF p = new PointF(this[i].X, bound + QuantumOrd);
                                this[i] = p;
                            }
                            else
                            {
                                PointF p = new PointF(this[i].X, bound);
                                this[i] = p;
                            }
                        }
                    }
                    if (!OnlyResult)
                    {
                        OnNewPoint?.Invoke(this, new FuncEventArgs(this[i]));
                    }
                }
            }
        }
Example #7
0
 protected override void FillList()
 {
     foreach (var item in InpF2)
     {
         var    mistake   = (float)Math.Pow(GetInputFunction(item.X) - item.Y, 2);
         PointF exception = new PointF(item.X, mistake);
         Add(exception);
         if (!OnlyResult)
         {
             OnNewPoint?.Invoke(this, new FuncEventArgs(exception));
         }
     }
 }
Example #8
0
 protected override void FillList()
 {
     for (float i = Left; i <= Right + 0.3f; i += dt)
     {
         var    func  = GetInputFunction(i);
         PointF point = new PointF(i, func);
         Add(point);
         if (!OnlyResult)
         {
             OnNewPoint?.Invoke(this, new FuncEventArgs(point));
         }
     }
 }
Example #9
0
        protected override void FillList()
        {
            var max = inpFunc.Select(a => a.Y).Max() * 0.001;
            var min = max * 0.0001;

            for (int i = 0; i < inpFunc.Count; i++)
            {
                if (Math.Abs(inpFunc[i].Y) > max || Math.Abs(inpFunc[i].Y) < min)
                {
                    Add(inpFunc[i]);
                    OnNewPoint?.Invoke(this, new FuncEventArgs(inpFunc[i]));
                }
            }
        }
Example #10
0
        protected override void FillList()
        {
            //
            for (float Left = this.Left; Left <= Right;)
            {//(float)Math.Pow(Math.Cos(5 * Left), 2) * (float)Math.Exp(-Math.Sin(Left/2));
                var NotQuantedOrd = GetInputFunction(Left);

                Add(new PointF(Left, NotQuantedOrd));
                if (QuantumOrd == 0 || !OnlyResult)
                {
                    OnNewPoint?.Invoke(this, new FuncEventArgs(new PointF(Left, NotQuantedOrd)));
                }
                Left += QuantumAbs;
            }
        }