Beispiel #1
0
 public Piece(double x1, double x2, PolynomialFunction f)
 {
     Function = f;
     Start    = x1;
     End      = x2;
     Integral = 0;
     Integral = Function.IntegralBetween(Start, End);
 }
Beispiel #2
0
 /// <summary>
 /// Converts a timewarp / spinrate node list to a piecewise linear function.
 /// </summary>
 /// <param name="nodes"></param>
 private void NodeListToPiecewiseLinearFunction(List <TsVal <float> > nodes)
 {
     for (int i = 0; i < nodes.Count - 1; i++)
     {
         double m, c;
         double deltaY = nodes[i + 1].Value - nodes[i].Value;
         if (deltaY == 0)
         {
             m = 0;
             c = nodes[i].Value;
         }
         else
         {
             double deltaX = nodes[i + 1].Time - nodes[i].Time;
             m = deltaY / deltaX;
             c = nodes[i].Value - m * nodes[i].Time;
         }
         var f = new PolynomialFunction(c, m);
         Pieces.Add(new Piece(nodes[i].Time, nodes[i + 1].Time, f));
     }
 }