- var makePath = function(ctx) {
- for (var i = 0; i < setCount; i++) {
- var setName = setNames[i];
- var color = colorScheme[i%colorCount];
- var strokeX = this.options.strokeColorTransform;
-
- // setup graphics context
- context.save();
- context.strokeStyle = color.toRGBString();
- context.lineWidth = this.options.strokeWidth;
- var point = this.layout.points[0];
- var pointSize = this.dygraph_.attr_("pointSize");
- var prevX = null, prevY = null;
- var drawPoints = this.dygraph_.attr_("drawPoints");
- var points = this.layout.points;
- for (var j = 0; j < points.length; j++) {
- var point = points[j];
- if (point.name == setName) {
- if (!isOK(point.canvasy)) {
- // this will make us move to the next point, not draw a line to it.
- prevX = prevY = null;
- } else {
- // A point is "isolated" if it is non-null but both the previous
- // and next points are null.
- var isIsolated = (!prevX && (j == points.length - 1 ||
- !isOK(points[j+1].canvasy)));
-
- if (!prevX) {
- prevX = point.canvasx;
- prevY = point.canvasy;
- } else {
- ctx.beginPath();
- ctx.moveTo(prevX, prevY);
- prevX = point.canvasx;
- prevY = point.canvasy;
- ctx.lineTo(prevX, prevY);
- ctx.stroke();
- }
-
- if (drawPoints || isIsolated) {
- ctx.beginPath();
- ctx.fillStyle = color.toRGBString();
- ctx.arc(point.canvasx, point.canvasy, pointSize, 0, 360, false);
- ctx.fill();
- }
- }
- }
- }
- }
- };