UNPKG

@rawify/vector3

Version:

The RAW JavaScript 3D Vector library

100 lines (81 loc) 1.95 kB
Vectors ======= They're everywhere. ___________________ ## Vector.js Make vectors ```javascript var v; v = new Vector(-31, 4.1); v = v.unitVector() .rotateBy(Math.PI) .scale(1.5) .plus(Vector.I.scale(-2)); // .etc() ``` ## shapes.js Make shapes ```javascript vectors.polygon(sides, rotation) vectors.star(numberofPoints, inset, rotation); vectors.circle(radius); ``` ## interpolate.js Join vectors ```javascript interpolate(vectorArray, steps); interpolate([Vector.I, {x: 2, y: 3}, new Vector(0, 0)], 10); interpolate(vectors.star(5, 20)); ``` ## canvas.js Draw vectors ```javascript vectors.canvas.fill(vectorSet); vectors.canvas.stroke(vectorSet, dontClosePath); vectors.canvas.fill([ Vector(300, 300), Vector(150, 0), Vector(0, 300) ]); vectors.canvas.stroke(Star(10)); ``` ## animate.js Animate vectors ```javascript vectors.star(4) .animate({ translation: largeStar.translate(Vector(300, 300)), duration: 2000 }) .interpolate(100) .animate({ scale: vectors.interpolate([0.1, 3], 70); duration: 3000 }); vectors.polygon(3) .animate({ duration: Infinity, scale: function (progress) { progress = (progress % 2500) / 2500; return 100 * (1 + Math.sin(progress * 2 * Math.PI)); }, translation: [Vector(200, 200)] }); ``` ## splode.js Make (broken) splosions ```javascript splode(numberOfParticles, animationSteps, spiralFactor); ``` ## vectors.js Keeps things together and gives us the VectorSet ```javascript vectors.star(2) instanceof vectors.VectorSet === true // true ``` ________________________________________ ## Todo - **fix scalar interpolation** - fix splode - splode using interpolate - splode draw method with progress argument - duplivert/animate splosions - ~~animate scale and rotation~~ - ~~interpolate scalars~~