@mathools/geometry
v1.0.1
Published
some very usefull math tools
Downloads
5
Readme
@mathools/gemoetry
@mathools geometry module for vector calcs
Installing
For install library is easy to install by cloning the repo. You can install trhought npm too: Local installation
npm install @mathools/geometry
Global installation
npm install -g @mathools/geometry
Contains
Magnitude
mag([Vector|arguments])
=>Decibels
mag2decibel(magnitude)
=>Vector
Vector([arguments]) extends Array
Vector class extends Array with some utils function for Vectors calcs. Function that are allowed only with Vectors takesVector|arguments
as parameter, and automatically convert Array, Vector or arguments Array to a usable Vector. Every function that doesnt return a value, return the Vector object. Every function has both static and instance scope, and can be called in two way:Vector.function( myVector, arguments )
ormyVector.function( arguments )
.
NB: [arguments] isn't an Array of numbers but the Array argument of the function, so it is possible to call a function in three way: function(0,1,2,3)
or function([0,1,2,3])
or function(new Vector(0,1,2,3))
and the result are the same
has(index,fallback)
=> return the index-th-component of the vector if present, fallback otherwise [scalar]mag(magnitude)
=> if nomagnitude
return the Vector's magnitude [scalar], else set it and return the Vectordecibel()
=> convert the Vector's magnitude to decibels [scalar]addMag(value)
=> add thevalue
to the magnitudesubMag(value)
=> subtract thevalue
from the magnitudelimit(limit)
=> constrain the magnitude to be less thanlimit
set([arguments])
=> set the components of the VecotrselfMap(callback(currValue,index,array))
=> set the Vector's components with the results of callingcallback
function on every component (Array.map + Vector.set)add([Vector|arguments])
=> add thearguments
to the Vector's componentssub([Vector|arguments])
=> subtract thearguments
to the Vector's componentsmul([arguments])
=> multilpy each component with the argumentsdiv([arguments])
=> divide each component with the argumentsinvert()
=> set-component
of each componentinverse()
=> set1/component
of each componentnormalize()
=> set the magnitude to 1 (Normalized Vector)dot(Vector|arguments)
=> return the dot product between two Vectors ()lerp(value, [Vector|arguments])
=> subract thearguments
and multiply it byvalue
copy()
=> return a copy of the Vectorabs()
=> set each component to his absolute valuesign()
=> set each component to his sign valuecut(i)
=> set to 0 the ith-component of the vectorlead(i)
=> set tocomponent/magnitude
the ith-component of the vectorproject(i)
=> set 0 all components except the ith-component that is setted as magnituderound(decimals)
=> round all components withdecimals
approximationfloor(decimals)
=> floor all components withdecimals
approximationceil(decimals)
=> ceil all components withdecimals
approximationrandom(decimals)
=> set every component to random value withdecimals
approximationsetAngle(angleXY, angleXZ)
=> set angle of the Vectorrotate(angleXY, angleXZ)
=> rotate of an angle the Vectorangle(i)
=> return a the angle of the ith-component with the 0th-component axis (X-Axis) [scalar]angle2(i,j)
=> return the angle of the ith-component with the j-th component axis [scalar]angleBetween(Vector|arguments)
=> return the angle between two Vector [scalar]solidAngle()
=> return an Array of angles[ angleXY, angleXZ, angleYZ ]
[scalar[]]spaceAngle()
=> return an Array of angles[ angleX, angleY, angleZ ]
[scalar[]]distance(Vector|arguments)
=> return the distance between two Vectors [scalar]orthographic(scaleX,scaleZ)
=> orthographic projection - set the Vector's 3D components to[ x*scaleX, y*scaleZ, 0 ]
perspective()
=> perspective - set the Vector's 3D components to[ x/z, y/z, 0 ]
Contacts
If you like the project feel free to contact me on my .
Something gone wrong? Feel free to rise an issue!
Did you like this project and it was usefull? Help me improve my work: