예제 #1
0
        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)));
        }
예제 #2
0
        public static Vec3 Distance(Vec3 dp, Vec3 sd)
        {
            double lp = VecX.Project01(dp, sd);

            lp = MathX.Clamp(lp, 0.0, 1.0);
            return(dp - lp * sd);
        }