o(sharp(x2s(0)) + 2, sharp(y2s(y_i)));
				context.lineTo(sharp(x2s(0)) - 2, sharp(y2s(y_i)));
				const to_print = (i < 0) ? "-" + String(Math.pow(2, Math.abs(i+1))) : String(Math.pow(2, i-1));
				if(i % 2 == 0)
					context.fillText(to_print, sharp(x2s(0)) - 12, sharp(y2s(y_i)) - 12);
				else
					context.fillText(to_print, sharp(x2s(0)) + 12, sharp(y2s(y_i)) + 12);
			}
		}
		context.stroke();
		context.closePath();

		// cross
		if(i_do_cross && (x2s(0) != w/2 || y2s(0) != h/2)) {
			context.beginPath