UNPKG

vectors

Version:

A grab bag of vector utility functions for 2D and 3D vectors that operate on plain arrays

36 lines (25 loc) 654 B
/** ### `lerp(vec, start, finish, scalar)` Set `vec` to the linear interpolation between vectors `start` and `finish`: ``` javascript var lerp = require('vectors/lerp')(2) var start = [0, 0] var finish = [100, 100] lerp([], start, finish, 0.75) === [75, 75] ``` **/ module.exports = generator function generator(dims) { dims = +dims|0 var body = [] body.push('return function lerp' + dims + '(vec, a, b, scalar) {') for (var i = 0; i < dims; i += 1) { body.push( 'vec[$] = a[$] + (b[$] - a[$]) * scalar'.replace(/\$/g, i) ) } body.push('return vec') body.push('}') return Function(body.join('\n'))() }