⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
📖 第 1 页 / 共 2 页
字号:
	cameraRotateXg: function(degree){		// summary: forms a rotating matrix (about the x axis)in cameraTransform manner		// description: The resulting matrix is used to rotate points		//		around the origin of coordinates (0, 0) by specified degree.		//		See dojox.gfx3d.matrix.rotateX() for comparison.		// degree: Number: an angle of rotation in degrees (>0 for CW)		return dojox.gfx3d.matrix.rotateX(dojox.gfx3d.matrix._degToRad(degree)); // dojox.gfx3d.matrix.Matrix3D	},	cameraRotateY: function(angle){		// summary: forms a rotating matrix (about the y axis) in cameraTransform manner		// description: The resulting matrix is used to rotate points 		//		around the origin of coordinates (0, 0) by specified angle.		// angle: Number: an angle of rotation in radians (>0 for CW)		var c = Math.cos(-angle);		var s = Math.sin(-angle);		return new dojox.gfx3d.matrix.Matrix3D({xx: c, xz: s, zx: -s, zz: c}); // dojox.gfx3d.matrix.Matrix3D	},	cameraRotateYg: function(degree){		// summary: forms a rotating matrix (about the y axis) in cameraTransform manner		// description: The resulting matrix is used to rotate points		//		around the origin of coordinates (0, 0) by specified degree.		//		See dojox.gfx3d.matrix.rotateY() for comparison.		// degree: Number: an angle of rotation in degrees (>0 for CW)		return dojox.gfx3d.matrix.rotateY(dojox.gfx3d.matrix._degToRad(degree)); // dojox.gfx3d.matrix.Matrix3D	},	cameraRotateZ: function(angle){		// summary: forms a rotating matrix (about the z axis) in cameraTransform manner		// description: The resulting matrix is used to rotate points 		//		around the origin of coordinates (0, 0) by specified angle.		// angle: Number: an angle of rotation in radians (>0 for CW)		var c = Math.cos(-angle);		var s = Math.sin(-angle);		return new dojox.gfx3d.matrix.Matrix3D({xx: c, xy: -s, yx: s, yy: c}); // dojox.gfx3d.matrix.Matrix3D	},	cameraRotateZg: function(degree){		// summary: forms a rotating matrix (about the z axis) in cameraTransform manner		// description: The resulting matrix is used to rotate points		//		around the origin of coordinates (0, 0) by specified degree.		//		See dojox.gfx3d.matrix.rotateZ() for comparison.		// degree: Number: an angle of rotation in degrees (>0 for CW)		return dojox.gfx3d.matrix.rotateZ(dojox.gfx3d.matrix._degToRad(degree)); // dojox.gfx3d.matrix.Matrix3D	},	// ensure matrix 3D conformance	normalize: function(matrix){		// summary: converts an object to a matrix, if necessary		// description: Converts any 3D matrix-like object or an array of		//		such objects to a valid dojox.gfx3d.matrix.Matrix3D object.		// matrix: Object: an object, which is converted to a matrix, if necessary		return (matrix instanceof dojox.gfx3d.matrix.Matrix3D) ? matrix : new dojox.gfx3d.matrix.Matrix3D(matrix); // dojox.gfx3d.matrix.Matrix3D	},		// common operations		clone: function(matrix){		// summary: creates a copy of a 3D matrix		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix-like object to be cloned		var obj = new dojox.gfx3d.matrix.Matrix3D();		for(var i in matrix){			if(typeof(matrix[i]) == "number" && typeof(obj[i]) == "number" && obj[i] != matrix[i]) obj[i] = matrix[i];		}		return obj; // dojox.gfx3d.matrix.Matrix3D	},	invert: function(matrix){		// summary: inverts a 2D matrix		// matrix: dojox.gfx.matrix.Matrix3D: a 2D matrix-like object to be inverted		var m = dojox.gfx3d.matrix.normalize(matrix);		var D = m.xx * m.yy * m.zz + m.xy * m.yz * m.zx + m.xz * m.yx * m.zy - m.xx * m.yz * m.zy - m.xy * m.yx * m.zz - m.xz * m.yy * m.zx;		var M = new dojox.gfx3d.matrix.Matrix3D({			xx: (m.yy * m.zz - m.yz * m.zy) / D,			xy: (m.xz * m.zy - m.xy * m.zz) / D,			xz: (m.xy * m.yz - m.xz * m.yy) / D,			yx: (m.yz * m.zx - m.yx * m.zz) / D,			yy: (m.xx * m.zz - m.xz * m.zx) / D,			yz: (m.xz * m.yx - m.xx * m.yz) / D,			zx: (m.yx * m.zy - m.yy * m.zx) / D,			zy: (m.xy * m.zx - m.xx * m.zy) / D,			zz: (m.xx * m.yy - m.xy * m.yx) / D,			dx: -1 * (m.xy * m.yz * m.dz + m.xz * m.dy * m.zy + m.dx * m.yy * m.zz - m.xy * m.dy * m.zz - m.xz * m.yy * m.dz - m.dx * m.yz * m.zy) / D,			dy: (m.xx * m.yz * m.dz + m.xz * m.dy * m.zx + m.dx * m.yx * m.zz - m.xx * m.dy * m.zz - m.xz * m.yx * m.dz - m.dx * m.yz * m.zx) / D,			dz: -1 * (m.xx * m.yy * m.dz + m.xy * m.dy * m.zx + m.dx * m.yx * m.zy - m.xx * m.dy * m.zy - m.xy * m.yx * m.dz - m.dx * m.yy * m.zx) / D		});		return M; // dojox.gfx3d.matrix.Matrix3D	},	_multiplyPoint: function(m, x, y, z){		// summary: applies a matrix to a point		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix object to be applied		// x: Number: an x coordinate of a point		// y: Number: a y coordinate of a point		// z: Number: a z coordinate of a point		return {x: m.xx * x + m.xy * y + m.xz * z + m.dx, y: m.yx * x + m.yy * y + m.yz * z + m.dy, z: m.zx * x + m.zy * y + m.zz * z + m.dz}; // Object	},	multiplyPoint: function(matrix, /* Number||Point */ a, /* Number, optional */ b, /* Number, optional */ c){		// summary: applies a matrix to a point		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix object to be applied		// a: Number: an x coordinate of a point		// b: Number: a y coordinate of a point		// c: Number: a z coordinate of a point		var m = dojox.gfx3d.matrix.normalize(matrix);		if(typeof a == "number" && typeof b == "number" && typeof c == "number"){			return dojox.gfx3d.matrix._multiplyPoint(m, a, b, c); // Object		}		// branch		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix object to be applied		// a: Object: a point		// b: null		// c: null		return dojox.gfx3d.matrix._multiplyPoint(m, a.x, a.y, a.z); // Object	},	multiply: function(matrix){		// summary: combines matrices by multiplying them sequentially in the given order		// matrix: dojox.gfx3d.matrix.Matrix3D...: a 3D matrix-like object, 		//		all subsequent arguments are matrix-like objects too		var m = dojox.gfx3d.matrix.normalize(matrix);		// combine matrices		for(var i = 1; i < arguments.length; ++i){			var l = m;			var r = dojox.gfx3d.matrix.normalize(arguments[i]);			m = new dojox.gfx3d.matrix.Matrix3D();			m.xx = l.xx * r.xx + l.xy * r.yx + l.xz * r.zx;			m.xy = l.xx * r.xy + l.xy * r.yy + l.xz * r.zy;			m.xz = l.xx * r.xz + l.xy * r.yz + l.xz * r.zz;			m.yx = l.yx * r.xx + l.yy * r.yx + l.yz * r.zx;			m.yy = l.yx * r.xy + l.yy * r.yy + l.yz * r.zy;			m.yz = l.yx * r.xz + l.yy * r.yz + l.yz * r.zz;			m.zx = l.zx * r.xx + l.zy * r.yx + l.zz * r.zx;			m.zy = l.zx * r.xy + l.zy * r.yy + l.zz * r.zy;			m.zz = l.zx * r.xz + l.zy * r.yz + l.zz * r.zz;			m.dx = l.xx * r.dx + l.xy * r.dy + l.xz * r.dz + l.dx;			m.dy = l.yx * r.dx + l.yy * r.dy + l.yz * r.dz + l.dy;			m.dz = l.zx * r.dx + l.zy * r.dy + l.zz * r.dz + l.dz;		}		return m; // dojox.gfx3d.matrix.Matrix3D	},	_project: function(m, x, y, z){		// summary: applies a matrix to a point		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix object to be applied		// x: Number: an x coordinate of a point		// y: Number: a y coordinate of a point		// z: Number: a z coordinate of a point		return {	// Object			x: m.xx * x + m.xy * y + m.xz * z + m.dx, 			y: m.yx * x + m.yy * y + m.yz * z + m.dy, 			z: m.zx * x + m.zy * y + m.zz * z + m.dz};	},	project: function(matrix, /* Number||Point */ a, /* Number, optional */ b, /* Number, optional */ c){		// summary: applies a matrix to a point		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix object to be applied		// a: Number: an x coordinate of a point		// b: Number: a y coordinate of a point		// c: Number: a z coordinate of a point		var m = dojox.gfx3d.matrix.normalize(matrix);		if(typeof a == "number" && typeof b == "number" && typeof c == "number"){			return dojox.gfx3d.matrix._project(m, a, b, c); // Object		}		// branch		// matrix: dojox.gfx3d.matrix.Matrix3D: a 3D matrix object to be applied		// a: Object: a point		// b: null		// c: null		return dojox.gfx3d.matrix._project(m, a.x, a.y, a.z); // Object	}});// propagate matrix updojox.gfx3d.Matrix3D = dojox.gfx3d.matrix.Matrix3D;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -