flymis/WebRoot/dojojs/src/gfx/matrix.js
(开头部分) 10KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.gfx.matrix");
dojo.require("dojo.lang.common");
dojo.require("dojo.math.*");
dojo.gfx.matrix.Matrix2D = function(/* Matrix2D */ arg){
// summary: a constructor for 2D matrix
// arg: a matrix-like object
if(arg){
if(arg instanceof Array){
if(arg.length > 0){
var m = dojo.gfx.matrix.normalize(arg[0]);
// combine matrices
for(var i = 1; i < arg.length; ++i){
var l = m;
var r = dojo.gfx.matrix.normalize(arg[i]);
m = new dojo.gfx.matrix.Matrix2D();
m.xx = l.xx * r.xx + l.xy * r.yx;
m.xy = l.xx * r.xy + l.xy * r.yy;
m.yx = l.yx * r.xx + l.yy * r.yx;
m.yy = l.yx * r.xy + l.yy * r.yy;
m.dx = l.xx * r.dx + l.xy * r.dy + l.dx;
m.dy = l.yx * r.dx + l.yy * r.dy + l.dy;
}
dojo.mixin(this, m);
}
}else{
dojo.mixin(this, arg);
}
}
};
// the default (identity) matrix, which is used to fill in missing values
dojo.extend(dojo.gfx.matrix.Matrix2D, {xx: 1, xy: 0, yx: 0, yy: 1, dx: 0, dy: 0});
dojo.mixin(dojo.gfx.matrix, {
// summary: class constants, and methods of dojo.gfx.matrix.Matrix2D
// matrix constants
identity: new dojo.gfx.matrix.Matrix2D(),
flipX: new dojo.gfx.matrix.Matrix2D({xx: -1}),
flipY: new dojo.gfx.matrix.Matrix2D({yy: -1}),
flipXY: new dojo.gfx.matrix.Matrix2D({xx: -1, yy: -1}),
// matrix creators
translate: function(/* Number||Point */ a, /* Number, optional */ b){
// summary: forms a translation matrix
// a: an X coordinate value (a number), or a point object
// b: an optional Y coordinate value
return arguments.length > 1 ? new dojo.gfx.matrix.Matrix2D({dx: a, dy: b}) : new dojo.gfx.matrix.Matrix2D({dx: a.x, dy: a.y}); // dojo.gfx.matrix.Matrix2D
后面还有 182 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。