vek3

TypeScript basic vector 3 library

Usage no npm install needed!

<script type="module">
  import vek3 from 'https://cdn.skypack.dev/vek3';
</script>

README

Vector 3

Installation

npm i vek3 --save

Example Usuage

var myVectorOne = new Vector.Three([1,2,3]),
    myVectorTwo = new Vector.Three([3,4,5]);

myVectorOne.angle(myVectorTwo).toString() // 0.18623876586484955
myVectorOne.add(myVectorTwo).toString() // vec3:(4, 6, 8)
myVectorOne.multiplyScalar(2).array // [ 2, 4, 6 ] *JavaScript Array primitive*
myVectorOne.eq(myVectorTwo) // false

Variables

x // X axis (get:set)
y // Y axis (get:set)
z // Z axis (get:set)
array // [ x, y, z ]
magnitude // Vector magnitude
normal // Vector normal

Basic Arithmetic

add // Add one vector to another
subtract // Subtract one vector from another
multiplyScalar // Multiply vector by a scalar
divideScalar // Divide vector by a scalar

Comparators

eq // Returns true if side a is equal to side b. Eg. A.eq(b)
neq // Returns true if side a is NOT equal to side b. Eg. A.neq(b)

Methods

multiply // Multiplies vector a with vector b
divide // Divides vector a by vector b
angle // Calcualtes the angle between vector a and vector b
dot // Dot product of a and b
cross // Cross product of vector a and b
distance // The distance between vector a and vector b
negate // The negative vector of a
abs // The absolute vector of a
refelct // Invert values
lerp // Interpolate values

Static Methods

max // Returns a new vector with the larger axis values
min // Returns a new vector with the smaller axis values

Complete Usuage

var myVectorOne = new Vector.Three([1,2,3]),
    myVectorTwo = new Vector.Three([3,4,5]);

myVectorOne.array; // [ 1, 2, 3 ]
myVectorOne.magnitude; // 14
myVectorOne.normal; //3.7416573867739413

myVectorOne.add(myVectorTwo).toString(); // vec3:(4, 6, 8)
myVectorOne.subtract(myVectorTwo).toString(); // vec3:(-2, -2, -2)
myVectorOne.multiplyScalar(2).toString(); // vec3:(2, 4, 6)
myVectorOne.divideScalar(2).toString(); // vec3:(0.5, 1, 1.5)

myVectorOne.eq(myVectorTwo); // false
myVectorOne.neq(myVectorTwo); // true

myVectorOne.multiply(myVectorTwo).toString(); // vec3:(3, 8, 15)
myVectorOne.divide(myVectorTwo).toString(); // vec3:(0.3333333333333333, 0.5, 0.6)
myVectorOne.angle(myVectorTwo); // 0.18623876586484955
myVectorOne.dot(myVectorTwo); // 26
myVectorOne.cross(myVectorTwo).toString(); // vec3:(-2, 4, -2)
myVectorOne.distance(myVectorTwo); // 3.4641016151377544
myVectorOne.negate().toString() // vec3:(-1, -2, -3)
myVectorOne.abs().toString() // vec3:(1, 2, 3)
myVectorOne.reflect().toString() // vec3:(-1, -2, -3)
myVectorOne.lerp(myVectorTwo, 5).toString() // vec3:(11, 12, 13)

Vector.Three.max(myVectorOne, myVectorTwo).toString(); //vec3:(3, 4, 5)
Vector.Three.min(myVectorOne, myVectorTwo).toString(); // vec3:(1, 2, 3)