89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
function fn.lerp(t, a, b) return (1-t)*a + t*b end
function fn.gradient(grad, pos)
local n = #grad
if n == 1 then return grad[1] end
local op = pos*(n-1)
local idx = math.floor(op)
local t = op-idx
return fn.lerp(t, grad[1 + idx], grad[2 + idx])
end
function fn.trim(fl, prec)
local fac = 10^prec
return math.floor(fl * fac) / fac
end
|
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
function fn.lerp(t, a, b) return (1-t)*a + t*b end
function fn.gradient(grad, pos)
local n = #grad
if n == 1 then return grad[1] end
local op = pos*(n-1)
local idx = math.floor(op)
local t = op-idx
return fn.lerp(t, grad[1 + idx] or grad[n], grad[2 + idx] or grad[n])
end
function fn.trim(fl, prec)
local fac = 10^prec
return math.floor(fl * fac) / fac
end
|