code: function _drawQuadratic(canvas, ctx, params, path) {
  	var l,
  		lx, ly,
  		lcx, lcy;
  
  	l = 2;
  
  	_addStartArrow(
  		canvas,
  		ctx,
  		params,
  		path,
  		path.cx1 + params.x,
  		path.cy1 + params.y,
  		path.x1 + params.x,
  		path.y1 + params.y
  	);
  
  	if (path.x1 !== undefined && path.y1 !== undefined) {
  		ctx.moveTo(path.x1 + params.x, path.y1 + params.y);
  	}
  	while (true) {
  		// Calculate next coordinates
  		lx = path['x' + l];
  		ly = path['y' + l];
  		lcx = path['cx' + (l - 1)];
  		lcy = path['cy' + (l - 1)];
  		// If coordinates are given
  		if (lx !== undefined && ly !== undefined && lcx !== undefined && lcy !== undefined) {
  			// Draw next curve
  			ctx.quadraticCurveTo(lcx + params.x, lcy + params.y, lx + params.x, ly + params.y);
  			l += 1;
  		} else {
  			// Otherwise, stop drawing
  			break;
  		}
  	}
  	l -= 1;
  	_addEndArrow(
  		canvas,
  		ctx,
  		params,
  		path,
  		path['cx' + (l - 1)] + params.x,
  		path['cy' + (l - 1)] + params.y,
  		path['x' + l] + params.x,
  		path['y' + l] + params.y
  	);
  }
docs: Draws quadratic curve (internal)