2D Vector Math Plugin¶
Contents
The frigame.vec2.js file provides commonly used 2D vector math functions.
New in version 2.3.0.
User API¶
-
friGame.Vec2.randomUnit(out)¶
-
friGame.Vec2.random(out, scale)¶
-
friGame.Vec2.clone(out, a)¶
-
friGame.Vec2.magnitude(a)¶
-
friGame.Vec2.squaredMagnitude(a)¶
-
friGame.Vec2.azimuth(a)¶
-
friGame.Vec2.fromMagAngle(out, mag, angle)¶
-
friGame.Vec2.fromValues(out, x, y)¶
-
friGame.Vec2.scale(out, value)¶
-
friGame.Vec2.invert(out)¶
-
friGame.Vec2.normalize(out)¶
-
friGame.Vec2.add(out, a)¶
-
friGame.Vec2.subtract(out, a)¶
-
friGame.Vec2.rotate(out, angle)¶
-
friGame.Vec2.rotateAroundPoint(out, a, axisPoint, angle)¶
-
friGame.Vec2.equals(a, b)¶
-
friGame.Vec2.distance(a, b)¶
-
friGame.Vec2.squaredDistance(a, b)¶
-
friGame.Vec2.sum(out, a, b)¶
-
friGame.Vec2.difference(out, a, b)¶
-
friGame.Vec2.dot(a, b)¶
-
friGame.Vec2.cross(a, b)¶
-
friGame.Vec2.lerp(out, a, b, t)¶ Instead of having a separate vector class, this plugin treats as a vector any object that has a numeric value for the x and y members.
- Arguments
out – The vector object to change
a – The first vector
b – The second vector
- Returns
If the function has an out parameter, the out object is returned. If the function does not have an out parameter, the computed numeric value is returned.
Example:
var // first_vec is a vector with a random angle, and a random magnitude, up to 10 first_vec = friGame.Vec2.random({}, 10), // second_vec is a vector with x = 10 and y = 20 second_vec = friGame.Vec2.fromValues({}, 10, 20) ; // Now both first_vec and second_vec have a numeric x and y value if (first_vec.x < 3) { } // This is something like // second_vec += first_vec friGame.Vec2.add(second_vec, first_vec); // Functions that don't have an out parameter, return a numeric value if (friGame.Vec2.azimuth(second_vec) < Math.PI) { }