public static T Distance <T>(T dp, T sd) where T : IVector, new() { double lp = VecX.Project01(dp, sd); lp = MathX.Clamp(lp, 0.0, 1.0); return(VecX.Sub(dp, VecX.Mul(sd, lp))); }
public static T Distance <T>(T dp, T sd) where T : IVector, new() { double lp = VecX.Project01(dp, sd); lp = MathX.Clamp(lp, 0.0, 1.0); return(VecX.Sub(dp, VecX.Mul(sd, lp))); }