grid_interpo.lua
NAME
grid_interpo
FUNCTION
grid_interpo(x, y, x1, x2, y1, y2, zx1y1, zx2y1, zx2y2, zx1y2)
NOTES
Linear interpolation for a grid
INPUTS
x, y - coordinate
x1, y1, x2, y2 - grid coordinates
z?? - values at grid coordinates
OUTPUTS
z at (x y)
SOURCE
function grid_interpo(x, y, x1, x2, y1, y2, zx1y1, zx2y1, zx2y2, zx1y2)
assert(x2 >= x1)
assert(y2 >= y1)
assert(x1 < x)
assert(y1 < y)
assert(x < x2)
assert(y < y2)
local dx1 = 1 - (x - x1) / (x2 - x1)
local dx2 = 1 - (x2 - x) / (x2 - x1)
local dy1 = 1 - (y - y1) / (y2 - y1)
local dy2 = 1 - (y2 - y) / (y2 - y1)
local f1 = dx2 * dy2
local f2 = dx1 * dy2
local f3 = dx1 * dy1
local f4 = dx2 * dy1
return f1 * zx1y1 + f2 * zx2y1 + f3 * zx2y2 + f4 * zx1y2
end