2.0.0 • Published 3 years ago
@coderosh/vector v2.0.0
vector
2D and 3D Vector classes for game development and physics simulations.
Installation
Install via npm
npm install @coderosh/vector
Or via yarn
yarn add @coderosh/vector
Usage
import { Vector2D, Vector3D } from '@coderosh/vector'
/* 3D Vector */
new Vector3D(1, 4, 1)
/* 2D Vector */
new Vector2D(1, 3)
Available methods
- add - 2D and 3D
- sub - 2D and 3D
- scale - 2D and 3D
- lerp - 2D and 3D
- slerp - 3D only
- nlerp - 2D and 3D
- lenSqr - 2D and 3D
- len - 2D and 3D
- dist - 2D and 3D
- normalize - 2D and 3D
- equals - 2D and 3D
- copy - 2D and 3D
- dot - 2D and 3D
- cross - 3D only
Documentation
add
Adds two vectors
const vec3d = new Vector3D(1, 2, 3)
vec3d.add(4, 5, 6)
vec3d.add(new Vector3D(4, 5, 6))
const vec2d = new Vector2D(1, 2)
vec2d.add(4, 5)
vec2d.add(new Vector2D(4, 5))
sub
Substracts two vectors
const vec3d = new Vector3D(1, 2, 3)
vec3d.sub(4, 5, 6)
vec3d.sub(new Vector3D(4, 5, 6))
const vec2d = new Vector2D(1, 2)
vec2d.sub(4, 5)
vec2d.sub(new Vector2D(4, 5))
scale
Multiply a vector by a scalar factor
const vec3d = new Vector3D(1, 2, 3)
vec3d.scale(2)
const vec2d = new Vector2D(1, 2)
vec2d.scale(2)
lenSqr
Square of length of vector
const vec3d = new Vector3D(1, 2, 3)
vec3d.lenSqr()
const vec2d = new Vector2D(1, 2)
vec2d.lenSqr()
len
Length of vector
const vec3d = new Vector3D(1, 2, 3)
vec3d.len()
const vec2d = new Vector2D(1, 2)
vec2d.len()
normalize
Normalize the vector
const vec3d = new Vector3D(1, 2, 3)
vec3d.normalize()
const vec2d = new Vector2D(1, 2)
vec2d.normalize()
dist
Calculate distance between two vectors
const vec3d = new Vector3D(1, 2, 3)
vec3d.dist(5, 2, 3)
vec3d.dist(new Vector3D(5, 2, 3))
const vec2d = new Vector2D(1, 2)
vec2d.dist(5, 2)
vec2d.dist(new Vector2D(5, 2))
equals
Check if two vectors have same coordinates
const vec3d = new Vector3D(1, 2, 3)
vec3d.equals(1, 2, 3)
vec3d.equals(new Vector3D(1, 2, 3))
const vec2d = new Vector2D(1, 2)
vec2d.equals(1, 2)
vec2d.equals(new Vector2D(1, 2))
dot
Returns dot product of two vectors
const vec3d = new Vector3D(1, 2, 3)
vec3d.dot(1, 1, 2)
vec3d.dot(new Vector3D(1, 1, 2))
const vec2d = new Vector2D(1, 2)
vec2d.dot(4, 2)
vec2d.dot(new Vector2D(4, 2))
cross
Returns cross product of two vectors
const vec = new Vector3D(1, 2, 3)
vec.cross(1, 2, 4)
vec.cross(new Vector3D(1, 2, 4))
lerp
Linear interpolate vectors
const vec3d = new Vector3D(1, 2, 3)
vec3d.lerp(1, 1, 2, 0.1)
vec3d.lerp(new Vector3D(1, 1, 2), 0.1)
const vec2d = new Vector2D(1, 2)
vec2d.lerp(4, 2, 0.1)
vec2d.lerp(new Vector2D(4, 2), 0.1)
slerp
Spherical linear interpolate vectors
const vec = new Vector3D(1, 0, 0)
vec.slerp(new Vector3D(0, 1, 0), 0.5)
vec.slerp(0, 1, 0, 0.5)
nlerp
Linear interpolate vectors and normalize
const vec3d = new Vector3D(1, 2, 3)
vec3d.nlerp(1, 1, 2, 0.1)
vec3d.nlerp(new Vector3D(1, 1, 2), 0.1)
const vec2d = new Vector2D(1, 2)
vec2d.nlerp(4, 2, 0.1)
vec2d.nlerp(new Vector2D(4, 2), 0.1)
copy
const vec3d = new Vector3D(1, 2, 3)
const newVec3d = vec3d.copy()
const newVec3d_ = new Vector(vec3d)
const vec2d = new Vector3D(1, 2, 3)
const newVec2d = vec2d.copy()
const newVec2d_ = new Vector(vec2d)
LICENSE
MIT