Files
Techmino/Zframework/mathExtend.lua
2022-01-03 00:14:10 +08:00

51 lines
892 B
Lua

local MATH={}for k,v in next,math do MATH[k]=v end
local int,ceil=math.floor,math.ceil
local rnd=math.random
MATH.tau=2*math.pi
function MATH.sign(a)
return a>0 and 1 or a<0 and -1 or 0
end
function MATH.roll(chance)
return rnd()<(chance or .5)
end
function MATH.coin(a,b)
if rnd()<.5 then
return a
else
return b
end
end
function MATH.interval(v,low,high)
if v<=low then
return low
elseif v>=high then
return high
else
return v
end
end
function MATH.lerp(s,e,t)
return s+(e-s)*t
end
do--function MATH.listLerp(list,t)
local interval,lerp=MATH.interval,MATH.lerp
function MATH.listLerp(list,t)
local t2=(#list-1)*interval(t,0,1)+1
return lerp(list[int(t2)],list[ceil(t2)],t2%1)
end
end
function MATH.expApproach(a,b,k)
return b+(a-b)*2.718281828459045^-k
end
return MATH