mirror of
https://github.com/HybridDog/vector_extras.git
synced 2025-01-09 17:50:17 +01:00
add a 2d line function
This commit is contained in:
parent
9be98c66ab
commit
51f60dd676
33
init.lua
33
init.lua
@ -135,6 +135,39 @@ function vector.line(pos, dir, range)
|
|||||||
return return_line(pos, dir, range)
|
return return_line(pos, dir, range)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local twolines = {}
|
||||||
|
function vector.twoline(x, y)
|
||||||
|
local pstr = x.." "..y
|
||||||
|
local line = twolines[pstr]
|
||||||
|
if line then
|
||||||
|
return line
|
||||||
|
end
|
||||||
|
line,n = {},1
|
||||||
|
local dirx = 1
|
||||||
|
if x < 0 then
|
||||||
|
dirx = -dirx
|
||||||
|
end
|
||||||
|
local ymin, ymax = 0, y
|
||||||
|
if y < 0 then
|
||||||
|
ymin, ymax = ymax, ymin
|
||||||
|
end
|
||||||
|
local m = y/x
|
||||||
|
local dir = 1
|
||||||
|
if m < 0 then
|
||||||
|
dir = -dir
|
||||||
|
end
|
||||||
|
for i = 0,x,dirx do
|
||||||
|
local p1 = math.max(math.min(math.floor((i-0.5)*m+0.5), ymax), ymin)
|
||||||
|
local p2 = math.max(math.min(math.floor((i+0.5)*m+0.5), ymax), ymin)
|
||||||
|
for j = p1,p2,dir do
|
||||||
|
line[n] = {i, j}
|
||||||
|
n = n+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
twolines[pstr] = line
|
||||||
|
return line
|
||||||
|
end
|
||||||
|
|
||||||
function vector.straightdelay(s, v, a)
|
function vector.straightdelay(s, v, a)
|
||||||
if not a then
|
if not a then
|
||||||
return s/v
|
return s/v
|
||||||
|
Loading…
Reference in New Issue
Block a user