@basementuniverse/vec
v1.0.2
Published
A small vector and matrix library
Downloads
9
Readme
vec
A small vector and matrix library
Usage
Node:
const { vec, mat } = require('@basementuniverse/vec');
Browser:
<script src="vec.js"></script>
Typescript:
import { vec, mat } from '@basementuniverse/vec';
Contents
Functions
Typedefs
vec([x], [y]) ⇒ vec
Create a new vector
Kind: global function
Returns: vec - A new vector
| Param | Type | Description | | --- | --- | --- | | [x] | number | vec | The x component of the vector, or a vector to copy | | [y] | number | The y component of the vector |
Example (Various ways to initialise a vector)
let a = vec(3, 2); // (3, 2)
let b = vec(4); // (4, 4)
let c = vec(a); // (3, 2)
let d = vec(); // (0, 0)
- vec([x], [y]) ⇒ vec
- .components(a) ⇒ Array.<number>
- .ux() ⇒ vec
- .uy() ⇒ vec
- .add(a, b) ⇒ vec
- .mul(a, b) ⇒ vec
- .sub(a, b) ⇒ vec
- .len(a) ⇒ number
- .manhattan(a) ⇒ number
- .nor(a) ⇒ vec
- .dot(a, b) ⇒ number
- .rot(a, r) ⇒ vec
- .eq(a, b) ⇒ boolean
- .rad(a) ⇒ number
- .cpy(a) ⇒ vec
- .map(a, f) ⇒ vec
- .str(a, [s]) ⇒ string
vec.components(a) ⇒ Array.<number>
Get the components of a vector as an array
Kind: static method of vec
Returns: Array.<number> - The vector components as an array
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to get components from |
vec.ux() ⇒ vec
Return a unit vector (1, 0)
Kind: static method of vec
Returns: vec - A unit vector (1, 0)
vec.uy() ⇒ vec
Return a unit vector (0, 1)
Kind: static method of vec
Returns: vec - A unit vector (0, 1)
vec.add(a, b) ⇒ vec
Add vectors
Kind: static method of vec
Returns: vec - a + b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.mul(a, b) ⇒ vec
Scale a vector
Kind: static method of vec
Returns: vec - a * b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | number | Scalar b |
vec.sub(a, b) ⇒ vec
Subtract vectors
Kind: static method of vec
Returns: vec - a - b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.len(a) ⇒ number
Get the length of a vector
Kind: static method of vec
Returns: number - |a|
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |
vec.manhattan(a) ⇒ number
Get the length of a vector using taxicab geometry
Kind: static method of vec
Returns: number - |a|
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |
vec.nor(a) ⇒ vec
Normalise a vector
Kind: static method of vec
Returns: vec - ^a
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to normalise |
vec.dot(a, b) ⇒ number
Get a dot product of vectors
Kind: static method of vec
Returns: number - a ∙ b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.rot(a, r) ⇒ vec
Rotate a vector by r radians
Kind: static method of vec
Returns: vec - A rotated vector
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to rotate | | r | number | The angle to rotate by, measured in radians |
vec.eq(a, b) ⇒ boolean
Check if two vectors are equal
Kind: static method of vec
Returns: boolean - True if vectors a and b are equal, false otherwise
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.rad(a) ⇒ number
Get the angle of a vector
Kind: static method of vec
Returns: number - The angle of vector a in radians
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |
vec.cpy(a) ⇒ vec
Copy a vector
Kind: static method of vec
Returns: vec - A copy of vector a
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to copy |
vec.map(a, f) ⇒ vec
Call a function on each component of a vector and build a new vector from the results
Kind: static method of vec
Returns: vec - Vector a mapped through f
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | f | vectorMapCallback | The function to call on each component of the vector |
vec.str(a, [s]) ⇒ string
Convert a vector into a string
Kind: static method of vec
Returns: string - A string representation of the vector
| Param | Type | Default | Description | | --- | --- | --- | --- | | a | vec | | The vector to convert | | [s] | string | "', '" | The separator string |
mat([m], [n], [entries]) ⇒ mat
Create a new matrix
Kind: global function
Returns: mat - A new matrix
| Param | Type | Default | Description | | --- | --- | --- | --- | | [m] | number | 4 | The number of rows | | [n] | number | 4 | The number of columns | | [entries] | Array.<number> | [] | Matrix values in reading order |
- mat([m], [n], [entries]) ⇒ mat
- .identity(n) ⇒ mat
- .get(a, i, j) ⇒ number
- .set(a, i, j, v)
- .row(a, m) ⇒ Array.<number>
- .col(a, n) ⇒ Array.<number>
- .add(a, b) ⇒ mat
- .sub(a, b) ⇒ mat
- .mul(a, b) ⇒ mat | boolean
- .scale(a, b) ⇒ mat
- .trans(a) ⇒ mat
- .minor(a, i, j) ⇒ mat | boolean
- .det(a) ⇒ number | boolean
- .nor(a) ⇒ mat | boolean
- .adj(a) ⇒ mat
- .inv(a) ⇒ mat | boolean
- .eq(a, b) ⇒ boolean
- .cpy(a) ⇒ mat
- .map(a, f) ⇒ mat
- .str(a, [ms], [ns]) ⇒ string
mat.identity(n) ⇒ mat
Get an identity matrix of size n
Kind: static method of mat
Returns: mat - An identity matrix
| Param | Type | Description | | --- | --- | --- | | n | number | The size of the matrix |
mat.get(a, i, j) ⇒ number
Get an entry from a matrix
Kind: static method of mat
Returns: number - The value at position (i, j) in matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |
mat.set(a, i, j, v)
Set an entry of a matrix
Kind: static method of mat
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset | | v | number | The value to set in matrix a |
mat.row(a, m) ⇒ Array.<number>
Get a row from a matrix as an array
Kind: static method of mat
Returns: Array.<number> - Row m from matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | m | number | The row offset |
mat.col(a, n) ⇒ Array.<number>
Get a column from a matrix as an array
Kind: static method of mat
Returns: Array.<number> - Column n from matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | n | number | The column offset |
mat.add(a, b) ⇒ mat
Add matrices
Kind: static method of mat
Returns: mat - a + b
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.sub(a, b) ⇒ mat
Subtract matrices
Kind: static method of mat
Returns: mat - a - b
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.mul(a, b) ⇒ mat | boolean
Multiply matrices
Kind: static method of mat
Returns: mat | boolean - ab or false if the matrices cannot be multiplied
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.scale(a, b) ⇒ mat
Scale a matrix
Kind: static method of mat
Returns: mat - a * b
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | number | Scalar b |
mat.trans(a) ⇒ mat
Transpose a matrix
Kind: static method of mat
Returns: mat - A transposed matrix
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to transpose |
mat.minor(a, i, j) ⇒ mat | boolean
Get the minor of a matrix
Kind: static method of mat
Returns: mat | boolean - The (i, j) minor of matrix a or false if the matrix is not square
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |
mat.det(a) ⇒ number | boolean
Get the determinant of a matrix
Kind: static method of mat
Returns: number | boolean - |a| or false if the matrix is not square
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a |
mat.nor(a) ⇒ mat | boolean
Normalise a matrix
Kind: static method of mat
Returns: mat | boolean - ^a or false if the matrix is not square
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to normalise |
mat.adj(a) ⇒ mat
Get the adjugate of a matrix
Kind: static method of mat
Returns: mat - The adjugate of a
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix from which to get the adjugate |
mat.inv(a) ⇒ mat | boolean
Get the inverse of a matrix
Kind: static method of mat
Returns: mat | boolean - a^-1 or false if the matrix has no inverse
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to invert |
mat.eq(a, b) ⇒ boolean
Check if two matrices are equal
Kind: static method of mat
Returns: boolean - True if matrices a and b are identical, false otherwise
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.cpy(a) ⇒ mat
Copy a matrix
Kind: static method of mat
Returns: mat - A copy of matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to copy |
mat.map(a, f) ⇒ mat
Call a function on each entry of a matrix and build a new matrix from the results
Kind: static method of mat
Returns: mat - Matrix a mapped through f
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | f | matrixMapCallback | The function to call on each entry of the matrix |
mat.str(a, [ms], [ns]) ⇒ string
Convert a matrix into a string
Kind: static method of mat
Returns: string - A string representation of the matrix
| Param | Type | Default | Description | | --- | --- | --- | --- | | a | mat | | The matrix to convert | | [ms] | string | "', '" | The separator string for columns | | [ns] | string | "'\n'" | The separator string for rows |
vec : Object
A 2d vector
Kind: global typedef
Properties
| Name | Type | Description | | --- | --- | --- | | x | number | The x component of the vector | | y | number | The y component of the vector |
- vec : Object
- .components(a) ⇒ Array.<number>
- .ux() ⇒ vec
- .uy() ⇒ vec
- .add(a, b) ⇒ vec
- .mul(a, b) ⇒ vec
- .sub(a, b) ⇒ vec
- .len(a) ⇒ number
- .manhattan(a) ⇒ number
- .nor(a) ⇒ vec
- .dot(a, b) ⇒ number
- .rot(a, r) ⇒ vec
- .eq(a, b) ⇒ boolean
- .rad(a) ⇒ number
- .cpy(a) ⇒ vec
- .map(a, f) ⇒ vec
- .str(a, [s]) ⇒ string
vec.components(a) ⇒ Array.<number>
Get the components of a vector as an array
Kind: static method of vec
Returns: Array.<number> - The vector components as an array
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to get components from |
vec.ux() ⇒ vec
Return a unit vector (1, 0)
Kind: static method of vec
Returns: vec - A unit vector (1, 0)
vec.uy() ⇒ vec
Return a unit vector (0, 1)
Kind: static method of vec
Returns: vec - A unit vector (0, 1)
vec.add(a, b) ⇒ vec
Add vectors
Kind: static method of vec
Returns: vec - a + b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.mul(a, b) ⇒ vec
Scale a vector
Kind: static method of vec
Returns: vec - a * b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | number | Scalar b |
vec.sub(a, b) ⇒ vec
Subtract vectors
Kind: static method of vec
Returns: vec - a - b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.len(a) ⇒ number
Get the length of a vector
Kind: static method of vec
Returns: number - |a|
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |
vec.manhattan(a) ⇒ number
Get the length of a vector using taxicab geometry
Kind: static method of vec
Returns: number - |a|
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |
vec.nor(a) ⇒ vec
Normalise a vector
Kind: static method of vec
Returns: vec - ^a
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to normalise |
vec.dot(a, b) ⇒ number
Get a dot product of vectors
Kind: static method of vec
Returns: number - a ∙ b
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.rot(a, r) ⇒ vec
Rotate a vector by r radians
Kind: static method of vec
Returns: vec - A rotated vector
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to rotate | | r | number | The angle to rotate by, measured in radians |
vec.eq(a, b) ⇒ boolean
Check if two vectors are equal
Kind: static method of vec
Returns: boolean - True if vectors a and b are equal, false otherwise
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | b | vec | Vector b |
vec.rad(a) ⇒ number
Get the angle of a vector
Kind: static method of vec
Returns: number - The angle of vector a in radians
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a |
vec.cpy(a) ⇒ vec
Copy a vector
Kind: static method of vec
Returns: vec - A copy of vector a
| Param | Type | Description | | --- | --- | --- | | a | vec | The vector to copy |
vec.map(a, f) ⇒ vec
Call a function on each component of a vector and build a new vector from the results
Kind: static method of vec
Returns: vec - Vector a mapped through f
| Param | Type | Description | | --- | --- | --- | | a | vec | Vector a | | f | vectorMapCallback | The function to call on each component of the vector |
vec.str(a, [s]) ⇒ string
Convert a vector into a string
Kind: static method of vec
Returns: string - A string representation of the vector
| Param | Type | Default | Description | | --- | --- | --- | --- | | a | vec | | The vector to convert | | [s] | string | "', '" | The separator string |
vectorMapCallback ⇒ number
A function to call on each component of a vector
Kind: global typedef
Returns: number - The mapped component
| Param | Type | Description | | --- | --- | --- | | value | number | The component value | | label | 'x' | 'y' | The component label (x or y) |
mat : Object
A matrix
Kind: global typedef
Properties
| Name | Type | Description | | --- | --- | --- | | m | number | The number of rows in the matrix | | n | number | The number of columns in the matrix | | entries | Array.<number> | The matrix values |
- mat : Object
- .identity(n) ⇒ mat
- .get(a, i, j) ⇒ number
- .set(a, i, j, v)
- .row(a, m) ⇒ Array.<number>
- .col(a, n) ⇒ Array.<number>
- .add(a, b) ⇒ mat
- .sub(a, b) ⇒ mat
- .mul(a, b) ⇒ mat | boolean
- .scale(a, b) ⇒ mat
- .trans(a) ⇒ mat
- .minor(a, i, j) ⇒ mat | boolean
- .det(a) ⇒ number | boolean
- .nor(a) ⇒ mat | boolean
- .adj(a) ⇒ mat
- .inv(a) ⇒ mat | boolean
- .eq(a, b) ⇒ boolean
- .cpy(a) ⇒ mat
- .map(a, f) ⇒ mat
- .str(a, [ms], [ns]) ⇒ string
mat.identity(n) ⇒ mat
Get an identity matrix of size n
Kind: static method of mat
Returns: mat - An identity matrix
| Param | Type | Description | | --- | --- | --- | | n | number | The size of the matrix |
mat.get(a, i, j) ⇒ number
Get an entry from a matrix
Kind: static method of mat
Returns: number - The value at position (i, j) in matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |
mat.set(a, i, j, v)
Set an entry of a matrix
Kind: static method of mat
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset | | v | number | The value to set in matrix a |
mat.row(a, m) ⇒ Array.<number>
Get a row from a matrix as an array
Kind: static method of mat
Returns: Array.<number> - Row m from matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | m | number | The row offset |
mat.col(a, n) ⇒ Array.<number>
Get a column from a matrix as an array
Kind: static method of mat
Returns: Array.<number> - Column n from matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | n | number | The column offset |
mat.add(a, b) ⇒ mat
Add matrices
Kind: static method of mat
Returns: mat - a + b
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.sub(a, b) ⇒ mat
Subtract matrices
Kind: static method of mat
Returns: mat - a - b
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.mul(a, b) ⇒ mat | boolean
Multiply matrices
Kind: static method of mat
Returns: mat | boolean - ab or false if the matrices cannot be multiplied
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.scale(a, b) ⇒ mat
Scale a matrix
Kind: static method of mat
Returns: mat - a * b
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | number | Scalar b |
mat.trans(a) ⇒ mat
Transpose a matrix
Kind: static method of mat
Returns: mat - A transposed matrix
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to transpose |
mat.minor(a, i, j) ⇒ mat | boolean
Get the minor of a matrix
Kind: static method of mat
Returns: mat | boolean - The (i, j) minor of matrix a or false if the matrix is not square
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | i | number | The row offset | | j | number | The column offset |
mat.det(a) ⇒ number | boolean
Get the determinant of a matrix
Kind: static method of mat
Returns: number | boolean - |a| or false if the matrix is not square
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a |
mat.nor(a) ⇒ mat | boolean
Normalise a matrix
Kind: static method of mat
Returns: mat | boolean - ^a or false if the matrix is not square
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to normalise |
mat.adj(a) ⇒ mat
Get the adjugate of a matrix
Kind: static method of mat
Returns: mat - The adjugate of a
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix from which to get the adjugate |
mat.inv(a) ⇒ mat | boolean
Get the inverse of a matrix
Kind: static method of mat
Returns: mat | boolean - a^-1 or false if the matrix has no inverse
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to invert |
mat.eq(a, b) ⇒ boolean
Check if two matrices are equal
Kind: static method of mat
Returns: boolean - True if matrices a and b are identical, false otherwise
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | b | mat | Matrix b |
mat.cpy(a) ⇒ mat
Copy a matrix
Kind: static method of mat
Returns: mat - A copy of matrix a
| Param | Type | Description | | --- | --- | --- | | a | mat | The matrix to copy |
mat.map(a, f) ⇒ mat
Call a function on each entry of a matrix and build a new matrix from the results
Kind: static method of mat
Returns: mat - Matrix a mapped through f
| Param | Type | Description | | --- | --- | --- | | a | mat | Matrix a | | f | matrixMapCallback | The function to call on each entry of the matrix |
mat.str(a, [ms], [ns]) ⇒ string
Convert a matrix into a string
Kind: static method of mat
Returns: string - A string representation of the matrix
| Param | Type | Default | Description | | --- | --- | --- | --- | | a | mat | | The matrix to convert | | [ms] | string | "', '" | The separator string for columns | | [ns] | string | "'\n'" | The separator string for rows |
matrixMapCallback ⇒ number
A function to call on each entry of a matrix
Kind: global typedef
Returns: number - The mapped entry
| Param | Type | Description | | --- | --- | --- | | value | number | The entry value | | index | number | The entry index | | entries | Array.<number> | The array of matrix entries |