Multilinear (ie bilinear/trilinear) interpolation for ndarrays.
var ndarray = require("ndarray")
var interp = require("ndarray-linear-interpolate")
var x = ndarray(new Float32Array(9), [3, 3])
x.set(1, 1, 1.0)
for(var u=0.0, u<=3.0; u+=0.25) {
var row = []
for(var v=0.0; v<=3.0; v+=0.25) {
row.push(interp(x, u, v))
}
console.log(row.join(" "))
}
//Prints out:
//
// 0 0 0 0 0 0 0 0 0 0 0 0 0
// 0 0.0625 0.125 0.1875 0.25 0.1875 0.125 0.0625 0 0 0 0 0
// 0 0.125 0.25 0.375 0.5 0.375 0.25 0.125 0 0 0 0 0
// 0 0.1875 0.375 0.5625 0.75 0.5625 0.375 0.1875 0 0 0 0 0
// 0 0.25 0.5 0.75 1 0.75 0.5 0.25 0 0 0 0 0
// 0 0.1875 0.375 0.5625 0.75 0.5625 0.375 0.1875 0 0 0 0 0
// 0 0.125 0.25 0.375 0.5 0.375 0.25 0.125 0 0 0 0 0
// 0 0.0625 0.125 0.1875 0.25 0.1875 0.125 0.0625 0 0 0 0 0
// 0 0 0 0 0 0 0 0 0 0 0 0 0
// 0 0 0 0 0 0 0 0 0 0 0 0 0
// 0 0 0 0 0 0 0 0 0 0 0 0 0
// 0 0 0 0 0 0 0 0 0 0 0 0 0
// 0 0 0 0 0 0 0 0 0 0 0 0 0
//
npm install ndarray-linear-interpolate
Interpolates values on an ndarray.
array
the array to interpolate fromx, y, z...
the coordinate to evaluate the interpolated grid at
Returns The multilinearly interpolated value
Note To avoid the overhead of variable arguments, special interfaces are available for 1, 2 and 3 dimensions. You can access these using:
require("ndarray-linear-interpolate").d1
require("ndarray-linear-interpolate").d2
require("ndarray-linear-interpolate").d3
(c) 2013 Mikola Lysenko. MIT License