예제 #1
0
        public static Vector3 DeboorDerivative(float t, int order, params Vector3[] cps)
        {
            if (cps.Length != 4)
            {
                throw new InvalidOperationException("Only cubic splines are properly handled, 4 control points expected");
            }
            var bezier = MathExtensions.BSplineToBernstein(cps[0], cps[1], cps[2], cps[3]);

            return(BezierDerivative(t, order, bezier.a, bezier.b, bezier.c, bezier.d));
        }
예제 #2
0
        public static Vector3 DeBoorTangent(Vector3 a, Vector3 b, Vector3 c, Vector3 d, float t)
        {
            var bezier = MathExtensions.BSplineToBernstein(a, b, c, d);

            return(BezierTangent(bezier.a, bezier.b, bezier.c, bezier.d, t));
        }