Иногда можно заюзать линейную "кривую" безье.
function bezierLineTo(x1, y1, x2, y2) {
var step = 0.0001; //для большей точности можно находить дистанцию между точками, тогда step = 1 / distance
for (var t = 0; t < 1; t += step) {
var x = (1 - t) * x1 + t * x2;
var y = (1 - t) * y1 + t * y2;
setPixel(x, y);
}
}