getTangent method
t - A position on the curve. Must be in the range  0, 1 .
optionalTarget — (optional) If specified, the result will be
copied into this Vector, otherwise a new Vector will be created.
Returns a unit vector tangent at t. If the derived curve does not implement its tangent derivation, two points a small delta apart will be used to find its gradient which seems to give a reasonable approximation.
Implementation
Vector getTangent(double t, [Vector? optionalTarget]) {
  const delta = 0.0001;
  double t1 = t - delta;
  double t2 = t + delta;
  // Capping in case of danger
  if (t1 < 0) t1 = 0;
  if (t2 > 1) t2 = 1;
  final pt1 = getPoint(t1);
  final pt2 = getPoint(t2);
  final tangent = optionalTarget ??
    ((pt1.runtimeType == Vector2)?Vector2(): Vector3());
  if(pt2 != null && pt1 != null){
    tangent.setFrom(pt2).sub(pt1).normalize();
  }
  return tangent;
}