{ "name": "scale_linear", "type": "function", "groups": ["Math"], "description": "Transforms a given value from an input domain to an output range using linear interpolation.", "arguments": [ {"arg":"val", "description":"A value in the input domain. The function will return a corresponding scaled value in the output range."}, {"arg":"domain_min", "description":"Specifies the minimum value in the input domain, the smallest value the input value should take."}, {"arg":"domain_max", "description":"Specifies the maximum value in the input domain, the largest value the input value should take."}, {"arg":"range_min", "description":"Specifies the minimum value in the output range, the smallest value which should be output by the function."}, {"arg":"range_max", "description":"Specifies the maximum value in the output range, the largest value which should be output by the function."} ], "examples": [ { "expression":"scale_linear(5,0,10,0,100)", "returns":"50"}, { "expression":"scale_linear(0.2,0,1,0,360)", "returns":"72", "note": "scaling a value between 0 and 1 to an angle between 0 and 360"}, { "expression":"scale_linear(1500,1000,10000,9,20)", "returns":"9.6111111", "note": "scaling a population which varies between 1000 and 10000 to a font size between 9 and 20"} ] }