interpolator function

Interpolator interpolator(
  1. List<Point<num>> start,
  2. List<Point<num>> stop, {
  3. bool closed = true,
})

Creates a function that interpolates from start to stop.

Implementation

Interpolator interpolator(List<Point> start, List<Point> stop,
    {bool closed = true}) {
  start = _normalize_line(start);
  stop = _normalize_line(stop);

  if (closed) {
    var prepared = closed_line.prepare(start, stop);
    start = prepared[0];
    stop = prepared[1];
  } else {
    var prepared = open_line.prepare(start, stop);
    start = prepared[0];
    stop = prepared[1];
  }

  List<Point> interpolator(num t) {
    t = _normalize_parameter(t);
    List<Point> result = [];
    for (var i = 0; i < start.length; i++) {
      result.add(math.pointAlong(start[i], stop[i], t));
    }
    return result;
  }

  return interpolator;
}