Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hph/vigur
A two-dimensional vector library written in ES6.
https://github.com/hph/vigur
Last synced: 15 days ago
JSON representation
A two-dimensional vector library written in ES6.
- Host: GitHub
- URL: https://github.com/hph/vigur
- Owner: hph
- Created: 2015-08-14T23:07:09.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-08-23T22:11:02.000Z (about 9 years ago)
- Last Synced: 2024-09-11T11:17:47.879Z (about 2 months ago)
- Language: JavaScript
- Size: 184 KB
- Stars: 13
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Vigur [![Build Status](https://travis-ci.org/hph/vigur.svg?branch=master)](https://travis-ci.org/hph/vigur)
A two-dimensional vector library written with clarity and ease of use in mind.
Leverages on new ES6 features and syntax and has a 100% test coverage.
Vigur is Icelandic for vector.### Setup & usage
To use Vigur on Node.js, install it with `npm install vigur` and start playing
around:```javascript
let Vector = require('vigur');
let myVector = new Vector(2, 3);
```To use Vigur on the front end via bower, install it with `bower install vigur`
and add the script to your template:```html
var myVector = new Vector(2, 3);
```
### Examples
```javascript
// Create a vector
let vector = new Vector(2, 3); // => Vector {x: 2, y: 3}// Some properties are available as getter methods
vector.magnitude; // => 3.605551275463989
vector.normalized; // => Vector {x: 0.5547001962252291, y: 0.8320502943378437}
vector.direction; // => 0.982793723247329// Some methods accept both values and vectors as params; some take none
vector // => Vector {x: 2, y: 3}
.multiply(3) // => Vector {x: 6, y: 9}
.multiply(new Vector(1, 3)) // => Vector {x: 6, y: 27}
.rotate(Math.PI / 2) // => Vector {x: -27, y: 6.000000000000002}
.rounded; // => Vector {x: -27, y: 6}// Operations that return vectors are chainable
new Vector(2, 3) // => Vector {x: 2, y: 3}
.add(new Vector(2, 5)) // => Vector {x: 4, y: 8}
.multiply(new Vector(1, 3)) // => Vector {x: 4, y: 24}
.subtract(new Vector(4, 10)) // => Vector {x: 0, y: 14}
.invert() // => Vector {x: 0, y: -14}
.cross(new Vector(3, 7)); // => 42// Also exposes utility methods
Vector.degreesToRadians(180);
// => 3.141592653589793
Vector.radiansToDegrees(Math.PI);
// => 180
```
Check the [source](https://github.com/hph/vigur/blob/master/src/vigur.js) for a
full list of available methods and documentation about them. The
[tests](https://github.com/hph/vigur/blob/master/test/vigur.js) are also a good
resource.