Template repo for tiny cross-platform apps that can be modified on phone, tablet or computer.
-- viewport
v = {x=0, y=0, w=Safe_width, h=Safe_height, zoom=1.0}

f,s = nil  -- ids of first and second touches
start, curr = {}, {}  -- coords of touches
initzoom = nil
initpos = nil -- for panning

function centroid(a, b)
  return{x=(a.x+b.x)/2, y=(a.y+b.y)/2}
end

function vx(sx) return scale(sx-v.x) end
function vy(sy) return scale(sy-v.y) end
function sx(vx) return v.x + iscale(vx) end
function sy(vy) return v.y + iscale(vy) end
function scale(d) return d*v.zoom end
function iscale(d) return d/v.zoom end

function dist(p1, p2)
  return ((p2.x-p1.x)^2 + (p2.y-p1.y)^2) ^ 0.5
end