assets/scripts/jsplumb/2.0/jsplumb.js
function(curve, location) {
		var p1 = _pointOnPath(curve, location),
			p2 = _pointOnPath(curve.slice(0, curve.length - 1), location),
			dy = p2.y - p1.y, dx = p2.x - p1.x;
		return dy == 0 ? Infinity : Math.atan(dy / dx);
	}
function(curve, location) {
		var p1 = _pointOnPath(curve, location),
			p2 = _pointOnPath(curve.slice(0, curve.length - 1), location),
			dy = p2.y - p1.y, dx = p2.x - p1.x;
		return dy == 0 ? Infinity : Math.atan(dy / dx);
	}
function ( curve , location ) { var p1 = _pointOnPath ( curve , location ) , p2 = _pointOnPath ( curve . slice ( 0 , curve . length - 1 ) , location ) , dy = p2 . y - p1 . y , dx = p2 . x - p1 . x ; return dy == 0 ? Infinity : Math . atan ( dy / dx ) ; }
returns the gradient of the curve at the given location, which is a decimal between 0 and 1 inclusive.

thanks // http://bimixual.org/AnimationLibrary/beziertangents.html
returns the gradient of the curve at the given location which is a decimal between 0 and 1 inclusive .