//// vismath.js, cr 02 may 2009 by ralph abraham
//// being some useful math utilities for canvas graphics

//// GLOBAL VARS
	// to setup 2D world coords (u, v) ranges
	// init values determined by canvas size
	var wumax = 1.0; // worldu max
	var wumin = 0; // worldu min
	var wvmax = 1.0; // worldv max
	var wvmin = 0; // worldv min
	// and screen coords (x, y) ranges
	var sxmax = 320; // screenx max, use width of canvas from HTML page
	var sxmin = 0; // screenx min
	var symax = 280; // screeny max, use height of canvas from HTML page
	var symin = 0; // screeny min

//// MATH FUNCS
	// map screen to world coords, x --> u
	function worldu(sx) {
		var temp =  ( sx - sxmin ) / ( sxmax - sxmin );
		return wumin + ( wumax - wumin ) * temp;
	};

	// map screen to world coords, y --> v
	function worldv(sy) {
		var temp =  ( sy - symin ) / ( symax - symin );
		return wvmax - ( wvmax - wvmin ) * temp;
	};

	// map world to screen coords, u --> x
	function screenx(wu) {
		var temp =  ( wu - wumin ) / ( wumax - wumin );
		return sxmin + ( sxmax - sxmin ) * temp;
	};

	// map world to screen coords, v --> y
	function screeny(wv) {
		var temp =  ( wv - wvmin ) / ( wvmax - wvmin );
		return symax - symin - ( symax - symin ) * temp;
	};

//// end: vismath.js
