rhb-server/mes-ui/rhb-app/node_modules/gl-vec2/README.md

223 lines
5.8 KiB
Markdown
Raw Normal View History

2025-10-20 11:14:41 +08:00
# gl-vec2
[![stable](http://badges.github.io/stability-badges/dist/stable.svg)](http://github.com/badges/stability-badges)
Part of a fork of [@toji](http://github.com/toji)'s
[gl-matrix](http://github.com/toji/gl-matrix) split into smaller pieces: this
package contains `glMatrix.vec2`.
## Usage
[![NPM](https://nodei.co/npm/gl-vec2.png)](https://nodei.co/npm/gl-vec2/)
### `vec2 = require('gl-vec2')`
Will load all of the module's functionality and expose it on a single
object. Note that any of the methods may also be required directly
from their files.
For example, the following are equivalent:
``` javascript
var scale = require('gl-vec2').scale
var scale = require('gl-vec2/scale')
```
## API
- [add()](#addoutvec2-avec2-bvec2)
- [ceil()](#ceiloutvec2-avec2)
- [clone()](#cloneavec2)
- [copy()](#copyoutvec2-avec2)
- [create()](#create)
- [cross()](#crossoutvec3-avec2-bvec2)
- [distance()](#distanceavec2-bvec2)
- [dist()](#distanceavec2-bvec2)
- [divide()](#divideoutvec2-avec2-bvec2)
- [div()](#divideoutvec2-avec2-bvec2)
- [dot()](#dotavec2-bvec2)
- [equals()](#equalsavec2-bvec2)
- [exactEquals()](#exactequalsavec2-bvec2)
- [floor()](#flooroutvec2-avec2)
- [forEach()](#foreachaarray-stridenumber-offsetnumber-countnumber-fnfunction-argobject)
- [fromValues()](#fromvaluesxnumber-ynumber)
- [inverse()](#inverseoutvec2-avec2)
- [length()](#lengthavec2)
- [len()](#lengthavec2)
- [lerp()](#lerpoutvec2-avec2-bvec2-tnumber)
- [limit()](#limitoutvec2-avec2-maxnumber)
- [max()](#maxoutvec2-avec2-bvec2)
- [min()](#minoutvec2-avec2-bvec2)
- [multiply()](#multiplyoutvec2-avec2-bvec2)
- [mul()](#multiplyoutvec2-avec2-bvec2)
- [negate()](#negateoutvec2-avec2)
- [normalize()](#normalizeoutvec2-avec2)
- [random()](#randomoutvec2-scalenumber)
- [rotate()](#rotateoutvec2-avec2-anglenumber)
- [round()](#roundoutvec2-avec2)
- [scale()](#scaleoutvec2-avec2-bnumber)
- [scaleAndAdd()](#scaleandaddoutvec2-avec2-bvec2-scalenumber)
- [set()](#setoutvec2-xnumber-ynumber)
- [squaredDistance()](#squareddistanceavec2-bvec2)
- [sqrDist()](#squareddistanceavec2-bvec2)
- [squaredLength()](#squaredlengthavec2)
- [sqrLen()](#squaredlengthavec2)
- [subtract()](#subtractoutvec2-avec2-bvec2)
- [sub()](#subtractoutvec2-avec2-bvec2)
- [transformMat2()](#transformmat2outvec2-avec2-mmat2)
- [transformMat2d()](#transformmat2doutvec2-avec2-mmat2d)
- [transformMat3()](#transformmat3outvec2-avec2-mmat3)
- [transformMat4()](#transformmat4outvec2-avec2-mmat4)
## add(out:vec2, a:vec2, b:vec2)
Adds two vec2's
## ceil(out:vec2, a:vec2)
`Math.ceil` the components of a vec2
## clone(a:vec2)
Creates a new vec2 initialized with values from an existing vector
## copy(out:vec2, a:vec2)
Copy the values from one vec2 to another
## create()
Creates a new, empty vec2
## cross(out:vec3, a:vec2, b:vec2)
Computes the cross product of two vec2's
Note that the cross product must by definition produce a 3D vector
## distance(a:vec2, b:vec2)
Calculates the euclidian distance between two vec2's. Aliased as `dist`.
## divide(out:vec2, a:vec2, b:vec2)
Divides two vec2's. Aliased as `div`.
## dot(a:vec2, b:vec2)
Calculates the dot product of two vec2's
## equals(a:vec2, b:vec2)
Returns whether or not the vectors have approximately the same elements in the same position.
## exactEquals(a:vec2, b:vec2)
Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)
## floor(out:vec2, a:vec2)
`Math.floor` the components of a vec2
## forEach(a:Array, stride:Number, offset:Number, count:Number, fn:Function, [arg]:Object)
Perform some operation over an array of vec2s.
## fromValues(x:Number, y:Number)
Creates a new vec2 initialized with the given values
## inverse(out:vec2, a:vec2)
Returns the inverse of the components of a vec2
## length(a:vec2)
Calculates the length of a vec2. Aliased as `len`.
## lerp(out:vec2, a:vec2, b:vec2, t:Number)
Performs a linear interpolation between two vec2's
## limit(out:vec2, a:vec2, max:Number)
Limit the magnitude of this vector to the value used for the `max` parameter
## max(out:vec2, a:vec2, b:vec2)
Returns the maximum of two vec2's
## min(out:vec2, a:vec2, b:vec2)
Returns the minimum of two vec2's
## multiply(out:vec2, a:vec2, b:vec2)
Multiplies two vec2's. Aliased as `mul`.
## negate(out:vec2, a:vec2)
Negates the components of a vec2
## normalize(out:vec2, a:vec2)
Normalize a vec2
## random(out:vec2, [scale]:Number)
Generates a random vector with the given scale
## round(out:vec2, a:vec2)
`Math.round` the components of a vec2
## rotate(out:vec2, a:vec2, angle:Number)
Rotates a vec2 by an angle (in radians)
## scale(out:vec2, a:vec2, b:Number)
Scales a vec2 by a scalar number
## scaleAndAdd(out:vec2, a:vec2, b:vec2, scale:Number)
Adds two vec2's after scaling the second operand by a scalar value
## set(out:vec2, x:Number, y:Number)
Set the components of a vec2 to the given values
## squaredDistance(a:vec2, b:vec2)
Calculates the squared euclidian distance between two vec2's. Aliased as `sqrDist`.
## squaredLength(a:vec2)
Calculates the squared length of a vec2. Aliased as `sqrLen`.
## subtract(out:vec2, a:vec2, b:vec2)
Subtracts vector b from vector a. Aliased as `sub`.
## transformMat2(out:vec2, a:vec2, m:mat2)
Transforms the vec2 with a mat2
## transformMat2d(out:vec2, a:vec2, m:mat2d)
Transforms the vec2 with a mat2d
## transformMat3(out:vec2, a:vec2, m:mat3)
Transforms the vec2 with a mat3
3rd vector component is implicitly '1'
## transformMat4(out:vec2, a:vec2, m:mat4)
Transforms the vec2 with a mat4
3rd vector component is implicitly '0'
4th vector component is implicitly '1'
## License
[zlib](http://en.wikipedia.org/wiki/Zlib_License). See [LICENSE.md](https://github.com/stackgl/gl-vec2/blob/master/LICENSE.md) for details.