<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" > <head> <title>Dojo 2D Matrix</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript">djConfig = {isDebug: true};</script> <script type="text/javascript" src="../../dojo.js"></script> <script type="text/javascript"> dojo.require("dojo.gfx.*"); dojo.require("dojo.event.*"); mdebug = function(matrix){ var m = dojo.gfx.matrix.normalize(matrix); dojo.debug("xx: " + m.xx + ", xy: " + m.xy + " | dx:" + m.dx); dojo.debug("yx: " + m.yx + ", yy: " + m.yy + " | dy:" + m.dy); }; pdebug = function(point){ dojo.debug("x: " + point.x + ", y: " + point.y); }; dojo.addOnLoad(function(){ var a = new dojo.gfx.matrix.Matrix2D(); mdebug(a); a = dojo.gfx.matrix.rotateg(30); mdebug(a); a = dojo.gfx.matrix.rotateg(45); mdebug(a); a = dojo.gfx.matrix.rotateg(90); mdebug(a); a = [new dojo.gfx.matrix.Matrix2D(), new dojo.gfx.matrix.Matrix2D(), new dojo.gfx.matrix.Matrix2D()]; mdebug(a); a = [dojo.gfx.matrix.rotateg(30), dojo.gfx.matrix.rotateg(-30)]; mdebug(a); a = [dojo.gfx.matrix.rotateg(30), dojo.gfx.matrix.invert(dojo.gfx.matrix.rotateg(30))]; mdebug(a); a = dojo.gfx.matrix.rotategAt(90, 10, 10); mdebug(a); var b = dojo.gfx.matrix.multiplyPoint(a, 10, 10); pdebug(b); b = dojo.gfx.matrix.multiplyPoint(a, 10, 5); pdebug(b); b = dojo.gfx.matrix.multiplyPoint(a, 10, 15); pdebug(b); a = [dojo.gfx.matrix.scale(2,1), dojo.gfx.matrix.invert(dojo.gfx.matrix.rotateg(45))]; mdebug(a); a = [dojo.gfx.matrix.scale(1,2), dojo.gfx.matrix.invert(dojo.gfx.matrix.rotateg(45))]; mdebug(a); a = [dojo.gfx.matrix.invert(dojo.gfx.matrix.rotateg(45)), dojo.gfx.matrix.scale(2,1)]; mdebug(a); a = [dojo.gfx.matrix.invert(dojo.gfx.matrix.rotateg(45)), dojo.gfx.matrix.scale(1,2)]; mdebug(a); a = [dojo.gfx.matrix.rotategAt(45, 100, 100), dojo.gfx.matrix.scale(2)]; mdebug(a); a = [dojo.gfx.matrix.scale(2), dojo.gfx.matrix.rotategAt(45, 100, 100)]; mdebug(a); a = [dojo.gfx.matrix.rotateg(45), dojo.gfx.matrix.scale(2)]; mdebug(a); a = [dojo.gfx.matrix.scale(2), dojo.gfx.matrix.rotateg(45)]; mdebug(a); a = [dojo.gfx.matrix.rotategAt(45, 300, 200), dojo.gfx.matrix.translate(100, 100), dojo.gfx.matrix.scale(2,1)]; mdebug(a); a = [dojo.gfx.matrix.translate(100, 100), dojo.gfx.matrix.rotateg(45), dojo.gfx.matrix.scale(2,1)]; mdebug(a); a = [dojo.gfx.matrix.rotategAt(45, 250, 250), { dx: 150, dy: 150 }]; mdebug(a); }); </script> </head> <body> </body> </html>