function print (mat) { let {a, b, c, d} = mat console.log(` a: ${a.toFixed(2)} b: ${b.toFixed(2)} c: ${c.toFixed(2)} d: ${d.toFixed(2)} `) } function moveit () { let {cx: x0, cy: y0} = or.rbox(svg) let {cx: x1, cy: y1} = b1.rbox(svg) let {cx: x2, cy: y2} = b2.rbox(svg) let m = new SVG.Matrix( (x1 - x0) / 50, (y1 - y0) / 50, (x2 - x0) / 50, (y2 - y0) / 50, x0, y0) let com = m.decompose() let g = new SVG.Matrix().compose(com) // Transform both of the items target.transform(m) mover.transform(g) console.log(com); print(m) print(g) } // Declare the two points let svg = SVG('svg') var or = SVG("#or").draggable(moveit) var b1 = SVG("#b1").draggable(moveit) var b2 = SVG("#b2").draggable(moveit) // Declare the squares let target = SVG("#true") let mover = SVG("#guess") let tester = SVG("#tester")