1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
function lerp(a, b, c)
return a + (b - a) * c
end
function dlerp(a, b, c)
return lerp(b, a, 0.5^c)
end
function bton(bool)
return bool and 1 or 0
end
function min(a, b)
if a < b then
return a
end
return b
end
function normalize(x, y)
if x == 0 and y == 0 then
return 0, 0
end
local leng = math.sqrt(x*x + y*y)
return x / leng, y / leng
end
-- Top left corner
function point_in_rect(px, py, rx, ry, rw, rh)
return px > rx and px < rx + rw and py > ry and py < ry + rh
end
function dist(x1, y1, x2, y2)
local dx = x1 - x2
local dy = y1 - y2
return (dx*dx + dy*dy)^0.5
end
|