Show approximation of contact zone
This commit is contained in:
parent
a3ac8074ae
commit
d2ec1b39df
@ -23,7 +23,7 @@ function collides()
|
|||||||
-- x
|
-- x
|
||||||
if ldx==0 then
|
if ldx==0 then
|
||||||
local lx=lx0 -- which ==lx1
|
local lx=lx0 -- which ==lx1
|
||||||
if (lx<bx0 or lx>=bx1) return false
|
if (lx<bx0 or lx>=bx1) return nil
|
||||||
else
|
else
|
||||||
local tx0=(bx0-lx0)/ldx
|
local tx0=(bx0-lx0)/ldx
|
||||||
local tx1=(bx1-lx0)/ldx
|
local tx1=(bx1-lx0)/ldx
|
||||||
@ -34,7 +34,7 @@ function collides()
|
|||||||
|
|
||||||
if ldy==0 then
|
if ldy==0 then
|
||||||
local ly=ly0 -- which ==ly1
|
local ly=ly0 -- which ==ly1
|
||||||
if (ly<by0 or ly>=by1) return false
|
if (ly<by0 or ly>=by1) return nil
|
||||||
else
|
else
|
||||||
local ty0=(by0-ly0)/ldy
|
local ty0=(by0-ly0)/ldy
|
||||||
local ty1=(by1-ly0)/ldy
|
local ty1=(by1-ly0)/ldy
|
||||||
@ -43,7 +43,8 @@ function collides()
|
|||||||
tmax=min(tmax,max(ty0,ty1))
|
tmax=min(tmax,max(ty0,ty1))
|
||||||
end
|
end
|
||||||
|
|
||||||
return tmax>=tmin
|
if (tmax < tmin) return nil
|
||||||
|
return tmin,tmax
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -73,7 +74,7 @@ function _to_halfopen(x0,x1)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function _update60()
|
function _update60()
|
||||||
local t=time()/4
|
local t=time()/16
|
||||||
|
|
||||||
local bx0_=_bounce_screen(t*1)
|
local bx0_=_bounce_screen(t*1)
|
||||||
local by0_=_bounce_screen(t*2)
|
local by0_=_bounce_screen(t*2)
|
||||||
@ -117,11 +118,19 @@ end
|
|||||||
function _draw()
|
function _draw()
|
||||||
cls(0)
|
cls(0)
|
||||||
rect(bx0,by0,bx1,by1,6)
|
rect(bx0,by0,bx1,by1,6)
|
||||||
local lc=2
|
line(lx0,ly0,lx1,ly1,2)
|
||||||
if collides() then
|
local cmin, cmax = collides()
|
||||||
lc=8
|
if cmin then
|
||||||
|
local dx,dy=lx1-lx0,ly1-ly0
|
||||||
|
line(lx0 + dx*cmin,
|
||||||
|
ly0 + dy*cmin,
|
||||||
|
lx0 + dx*cmax,
|
||||||
|
ly0 + dy*cmax,
|
||||||
|
8)
|
||||||
|
pset(lx0 + dx*cmin,
|
||||||
|
ly0 + dy*cmin,
|
||||||
|
10)
|
||||||
end
|
end
|
||||||
line(lx0,ly0,lx1,ly1,lc)
|
|
||||||
|
|
||||||
pset(last_mx,last_my,7)
|
pset(last_mx,last_my,7)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user