Math-Helper-Functions
Some useful Math functions not built into the Javascript Math Object. Mainly useful for Web Games.
Functions
-
map(x, istart, istop, ostart, ostop) ⇒
Number
-
Map a value from a range of numbers to another range of numbers.
x is the intial value between istart and istop and return the value between ostart and ostop
-
limit(x, min, max) ⇒
Number
-
Limit a value between a min/max value
-
toRad(x) ⇒
Number
-
Convert the angle, provided in degrees (0-360), into radians (0-2*PI)
-
toDeg(x) ⇒
Number
-
Convert the angle, provided in radians (0-2*PI), into degrees (0-360)
-
range(min, max) ⇒
Number
-
Get random Float value between range of numbers
-
distance(a, b) ⇒
Number
-
Distance between two points
-
lerp(current, target, time) ⇒
Number
-
Lerp between current position to target position over a period of time
-
average(a, b) ⇒
Number
-
Returns the average or the midpoint between two numbers
-
midpoint(v1, v2) ⇒
Object
-
Get the midpoint between two points
- chance(percent)
-
Return a true or false for a random chance of a percentage
Number
map(x, istart, istop, ostart, ostop) ⇒ Map a value from a range of numbers to another range of numbers x is to istart and istop segment.
Returns: Number
- The number that is in the same relation to ostart and ostop segment
Param | Type | Description |
---|---|---|
x | Number |
Value we are testing |
istart | Number |
Min value to test |
istop | Number |
Max value to test |
ostart | Number |
Min value to map to (based on x value) |
ostop | Number |
Max value to map to (based on x value) |
Example
map(Math.random(), 0, 1, 10, 20); will provided a number between 10 and 20
Number
limit(x, min, max) ⇒ Limit a value between a min/max value
Returns: Number
- Either x, or the nearest limit if x is out of bounds.
Param | Type | Description |
---|---|---|
x | Number |
Value we need to limit |
min | Number |
Min number to return |
max | Number |
Max number to return |
Number
toRad(x) ⇒ Convert the angle, provided in degrees (0-360), into radians (0-2*PI)
Returns: Number
- Angle in Radians
Param | Type | Description |
---|---|---|
x | Number |
Angle in Degrees |
Number
toDeg(x) ⇒ Convert the angle, provided in radians (0-2*PI), into degrees (0-360)
Returns: Number
- Angle in Degrees
Param | Type | Description |
---|---|---|
x | Number |
Angle in Radians |
Number
range(min, max) ⇒ Get random Float value between range of numbers
Returns: Number
- Return random Float value between min and max range
Param | Type | Description |
---|---|---|
min | Number |
Min range value |
max | Number |
Max range value |
Number
distance(a, b) ⇒ Distance between two points
Returns: Number
- Distance between points
Param | Type | Description |
---|---|---|
a | Object |
first point {x: 0, y: 0} |
b | Object |
second point {x: 0, y: 0} |
Example
- can supply 2D or 3D point {x: 0, y: 0, z: 0}
Number
lerp(current, target, time) ⇒ Lerp between current position to target position over a period of time
Returns: Number
- Value between current/target over the time
Param | Type | Description |
---|---|---|
current | Number |
Current position value |
target | Number |
Target position value |
time | Number |
Time value |
Number
average(a, b) ⇒ Returns the average or the midpoint between two numbers
Returns: Number
- - the midpoint between two numbers
Param | Type | Description |
---|---|---|
a | Number |
first number |
b | Number |
second number |
Object
midpoint(v1, v2) ⇒ Get the midpoint between two points
Returns: Object
- - {x: x, y: y, z: z}
Param | Type | Description |
---|---|---|
v1 | Object |
{x: 0, y: 0} |
v2 | Object |
{x: 0, y: 0} |
Example
- Also accepts 3D point {x: 0, y: 0, z: 0}
chance(percent)
Return a true or false for a random chance of a percentage
Param | Type | Description |
---|---|---|
percent | Number |
float percentage 0 -> 1 |
Example
if(chance(0.2)){ console.log('20% chance true') }