h;

	function atan_real_to_screen (x, dx, scale, w) {
		return Math.atan((x - dx) / scale) / Math.PI * (w - 1.) + (w / 2);
	}

	function atan_screen_to_real (x, dx, scale, w) {
		return scale * Math.tan((x - (w / 2)) * Math.PI / (w - 1.)) + dx;
	}

	// returns 4 translation functions from/to screen and real coordinates
	function s2x_x2s_s2y_y2s(center_x, center_y, scale) {
		return [
			function(i) {return atan_screen_to_real(i, x_value, scale_value, w);},
			function(x) {return atan_real_to_screen(x, x_val