			context.beginPath();
			var the_gap = true;
			var old_i;
			for(var j = +0.5; j < w - 0.5; j += 2.) {
				const x = s2x(j);
				const y = f(x);
				const i = y2s(y);
				if(the_gap) {
					context.moveTo(j, i)
					the_gap = false;
				} else {
					if(Math.abs(i - old_i) >= h)
						the_gap = true;
					else
						context.lineTo(j, i);
				}
				old_i = i;
			}
			context.strokeStyle = color;
			context.lineWidth = 1.5;
			context.stroke();
			context.closePath();
		}

		// points
		context.fillStyle =