34 lines
904 B
Lua

local util = require("util")
util.distance = function(p1, p2)
local x1 = p1.x or p1[1]
local y1 = p1.y or p1[2]
local x2 = p2.x or p2[1]
local y2 = p2.y or p2[2]
return (((x1 - x2) ^ 2) + ((y1 - y2) ^ 2)) ^ 0.5
end
util.area = function(position, radius)
local x = position[1] or position.x
local y = position[2] or position.y
return {{x - radius, y - radius}, {x + radius, y + radius}}
end
util.angle = function(position_1, position_2)
local d_x = (position_2[1] or position_2.x) - (position_1[1] or position_1.x)
local d_y = (position_2[2] or position_2.y) - (position_1[2] or position_1.y)
return math.atan2(d_y, d_x)
end
util.get_orientation_to = function(position_1, position_2)
-- Angle in rads
local angle = util.angle(position_2, position_1)
-- Convert to orientation
local orientation = (angle / (2 * math.pi)) - 0.25
return orientation % 1
end
return util