MathBox class
class MathBox { static const double TWO_PI = Math.PI * 2.0; MathBox(); /** * Return the distance between the two given vectors, but squared. */ static num distanceSquared(Vector v1, Vector v2) { num dx = (v1.x - v2.x); num dy = (v1.y - v2.y); return dx * dx + dy * dy; } /** * Return the distance between the two given vectors. */ static num distance(Vector v1, Vector v2) { return Math.sqrt(distanceSquared(v1, v2)); } /** Returns the closest value to [a] that is in between [low] and [high] */ static num clamp(num a, num low, num high) { return Math.max(low, Math.min(a, high)); } /** * Given a value within the range specified by [fromMin] and [fromMax], * returns a value with the same relative position in the range specified * from [toMin] and [toMax]. For example, given a [val] of 2 in the * "from range" of 0-4, and a "to range" of 10-20, would return 15. */ static num translateAndScale(num val, num fromMin, num fromMax, num toMin, num toMax) { final num mult = (val - fromMin) / (fromMax - fromMin); final num res = toMin + mult * (toMax - toMin); return res; } /** Convert from [deg] degrees to radians. */ static num degToRad(num deg) => (Math.PI / 180.0) * deg; /** Convert from [rad] radians to degrees. */ static num radToDeg(num rad) => (180.0 / Math.PI) * rad; }
Static Properties
const double TWO_PI #
static const double TWO_PI = Math.PI * 2.0
Static Methods
num distanceSquared(Vector v1, Vector v2) #
Return the distance between the two given vectors, but squared.
static num distanceSquared(Vector v1, Vector v2) { num dx = (v1.x - v2.x); num dy = (v1.y - v2.y); return dx * dx + dy * dy; }
num distance(Vector v1, Vector v2) #
Return the distance between the two given vectors.
static num distance(Vector v1, Vector v2) { return Math.sqrt(distanceSquared(v1, v2)); }
num clamp(num a, num low, num high) #
Returns the closest value to a that is in between low and high
static num clamp(num a, num low, num high) { return Math.max(low, Math.min(a, high)); }
num translateAndScale(num val, num fromMin, num fromMax, num toMin, num toMax) #
Given a value within the range specified by fromMin and fromMax, returns a value with the same relative position in the range specified from toMin and toMax. For example, given a val of 2 in the "from range" of 0-4, and a "to range" of 10-20, would return 15.
static num translateAndScale(num val, num fromMin, num fromMax, num toMin, num toMax) { final num mult = (val - fromMin) / (fromMax - fromMin); final num res = toMin + mult * (toMax - toMin); return res; }
num degToRad(num deg) #
Convert from deg degrees to radians.
static num degToRad(num deg) => (Math.PI / 180.0) * deg;
num radToDeg(num rad) #
Convert from rad radians to degrees.
static num radToDeg(num rad) => (180.0 / Math.PI) * rad;
Constructors
new MathBox() #
MathBox();