Example #1
0
        public GaussianParametricInterpolation(PointPairList inputPoints, double alpha, ParametricType type) : base(inputPoints, alpha)
        {
            Type  = type;
            Name += type.ToString();

            XTArray = new PointPairList();
            YTArray = new PointPairList();

            if (type == ParametricType.Normal)
            {
                for (int i = 0; i < inputPoints.Count; i++)
                {
                    XTArray.Add(new PointPair(i, inputPoints[i].X)); // fill Xt(t)
                    YTArray.Add(new PointPair(i, inputPoints[i].Y)); // fill Yt(t)
                }
            }
            else if (type == ParametricType.Summary)
            {
                double previousT = 0;
                XTArray.Add(new PointPair(previousT, inputPoints[0].X)); // fill Xt[0](t)
                YTArray.Add(new PointPair(previousT, inputPoints[0].Y)); // fill Y[0](t)

                for (int i = 1; i < inputPoints.Count; i++)
                {
                    PointPair prevPoint = inputPoints[i - 1];
                    PointPair currPoint = inputPoints[i];
                    previousT += distanceBetween(prevPoint, currPoint);

                    XTArray.Add(new PointPair(previousT, inputPoints[i].X)); // fill Xt(t)
                    YTArray.Add(new PointPair(previousT, inputPoints[i].Y)); // fill Y(t)
                }
            }

            TMin = XTArray.First().X;
            TMax = XTArray.Last().X;
        }
 private static string Id(ParametricType type, int id)
 {
     return(string.Concat(type == ParametricType.Value ? "V" : type == ParametricType.ListValue ? "L" : "M", id));
 }
 public ParametricValue ParametricValue(ParametricType type, int id, string cultureCode)
 {
     return(Lookup <string, ParametricValue, ParametricValuesLookup>(DataSet.ParametricValues, Id(type, id), cultureCode));
 }