public static Vector3 CalculateBezierDerivative(Vector3 p0, Vector3 p1, Vector3 cp0, Vector3 cp1, float t) { float oneMinusT = 1f - t; return 3f * oneMinusT * oneMinusT * (cp0 - p0) + 6f * oneMinusT * t * (cp1 - cp0) + 3f * t * t * (p1 - cp1); }
Vector2 GetDerivative(LinePoint p0, LinePoint p1, float t) { if (p0.isNextCurve || p1.isPrvCurve) { return(Curve.CalculateBezierDerivative(p0.point, p1.point, p0.nextCurvePoint, p1.prvCurvePoint, t)); } return((p1.point - p0.point).normalized); }