{
const ct = canvas.ct;
ct.save();
ct.clearRect(0, 0, WIDTH, HEIGHT);
ct.translate(cx, HEIGHT - cy);
ct.transform(50, 0, 0, -50, 0, 0);
ct.transform(1, 2*t, 0, 1, t, t*t);
const max_x = Math.floor((WIDTH - cx) / 50);
const max_y = Math.floor((HEIGHT - cy) / 50);
ct.beginPath();
for (let y = -max_y; y <= max_y * 2; y++) {
ct.moveTo(-max_x-1, y);
ct.lineTo(max_x+1, y);
}
for (let x = -max_x; x <= max_x; x++) {
ct.moveTo(x, -max_y);
ct.lineTo(x, max_y * 2);
}
ct.lineWidth = 1/50;
ct.strokeStyle = "#999";
ct.stroke();
ct.beginPath();
ct.moveTo(-Math.sqrt(max_y * 2), max_y * 2);
ct.quadraticCurveTo(0, -max_y * 2, Math.sqrt(max_y * 2), max_y * 2);
ct.lineWidth = 3/50;
ct.strokeStyle = "red";
ct.stroke();
ct.restore();
return this || html`(<i>the drawing function</i>)`;
}