Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгами «JavaScript, математика»


Артем Леготин
  • Репутация: 18
  • Сниппеты: 5
  • Ревизии: 0

Возвращает линейную функцию f(x), построенную следующим образом:

f(a) = A; f(b) = B;

var linear = function( a, b, A, B, is_ext ) {
	return function( x ) {
		if ( x <= a && is_ext !== true ) {
			return A;
		} else if ( x >= b && is_ext !== true ) {
			return B;
		} else {
			return x * ( B - A ) / ( b - a ) + ( A * b - B * a ) / ( b - a );
		}
	};
};

/*
	По умолчанию, за пределами области определения функция будет возвращать крайние значения, то есть:

	f(x) = A, если x < a;
	f(x) = B, если x > b;

	Однако, если передать параметр is_ext в значении true, f(x) будет экстраполировать значения линейным образом.
*/

var f = linear( -50, 50, 0, 1 );// без экстраполяции

f(-60);// 0
f(-50);// 0
f(0);// 0.5
f(50);// 1
f(100);// 1

var g = linear( 0, 10, 0, 100, true );// c экстраполяцией

g(-5);// -50
g(0);// 0
g(5);// 50
g(10);// 100
g(20);// 200