34 lines
904 B
Lua
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
|