Mercurial > hg > digilib
changeset 1363:1ad07ddb4bf8
better readable geometry
author | hertzhaft |
---|---|
date | Thu, 19 Feb 2015 01:08:34 +0100 |
parents | 4105e6afe9df |
children | da796a73024c |
files | webapp/src/main/webapp/jquery/jquery.digilib.measure.js |
diffstat | 1 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Mon Feb 16 23:49:14 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Thu Feb 19 01:08:34 2015 +0100 @@ -1191,13 +1191,16 @@ var p = props.screenpos; var vtx = props.vtx; if (vtx > 1 || p.length > 2) { - var pv = p[2]; - var pd = geom.position(p[1].x - p[0].x, p[1].y - p[0].y); - var pe = (Math.abs(pd.y) > Math.abs(pd.x)) - ? geom.position(pv.x - p[1].x, pd.x/pd.y * (pv.x - p[1].x)) - : geom.position(pd.y/pd.x * (p[1].y - pv.y), p[1].y - pv.y); - p[2] = geom.position(p[1].x + pe.x, p[1].y - pe.y); - p[3] = geom.position(p[0].x + pe.x, p[0].y - pe.y); + var dx = p[2].x - p[1].x; + var dy = p[1].y - p[2].y + var d = p[0].delta(p[1]); + var ratio = d.x/d.y; + var inv = d.y/d.x; + var z = Math.abs(d.y) > Math.abs(d.x) + ? geom.position(dx, ratio * -dx) + : geom.position(inv * dy, -dy); + p[2] = p[1].copy().add(z); + p[3] = p[0].copy().add(z); shape.geometry.coordinates[2] = data.imgTrafo.invtransform(p[2]).toArray(); shape.geometry.coordinates[3] = data.imgTrafo.invtransform(p[3]).toArray(); }