亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shape.js

?? js基本操作
?? JS
字號:
/*	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.shape");dojo.require("dojo.lang.declare");dojo.require("dojo.gfx.common");dojo.declare("dojo.gfx.Shape", null, {	// summary: a Shape object, which knows how to apply 	// graphical attributes and transformations	initializer: function(){			// rawNode: Node: underlying node		this.rawNode = null;				// shape: Object: an abstract shape object		//	(see dojo.gfx.defaultPath,		//	dojo.gfx.defaultPolyline,		//	dojo.gfx.defaultRect,		//	dojo.gfx.defaultEllipse,		//	dojo.gfx.defaultCircle,		//	dojo.gfx.defaultLine,		//	or dojo.gfx.defaultImage)		this.shape = null;				// matrix: dojo.gfx.matrix.Matrix: a transformation matrix		this.matrix = null;				// fillStyle: Object: a fill object 		//	(see dojo.gfx.defaultLinearGradient, 		//	dojo.gfx.defaultRadialGradient, 		//	dojo.gfx.defaultPattern, 		//	or dojo.gfx.color.Color)		this.fillStyle = null;				// strokeStyle: Object: a stroke object 		//	(see dojo.gfx.defaultStroke) 		this.strokeStyle = null;				// bbox: dojo.gfx.Rectangle: a bounding box of this shape		//	(see dojo.gfx.defaultRect)		this.bbox = null;				// virtual group structure				// parent: Object: a parent or null		//	(see dojo.gfx.Surface,		//	dojo.gfx.shape.VirtualGroup,		//	or dojo.gfx.Group)		this.parent = null;				// parentMatrix: dojo.gfx.matrix.Matrix		//	a transformation matrix inherited from the parent		this.parentMatrix = null;	},	// trivial getters	getNode: function(){		// summary: returns the current DOM Node or null		return this.rawNode; // Node	},	getShape: function(){		// summary: returns the current shape object or null		//	(see dojo.gfx.defaultPath,		//	dojo.gfx.defaultPolyline,		//	dojo.gfx.defaultRect,		//	dojo.gfx.defaultEllipse,		//	dojo.gfx.defaultCircle,		//	dojo.gfx.defaultLine,		//	or dojo.gfx.defaultImage)		return this.shape; // Object	},	getTransform: function(){		// summary: returns the current transformation matrix or null		return this.matrix;	// dojo.gfx.matrix.Matrix	},	getFill: function(){		// summary: returns the current fill object or null		//	(see dojo.gfx.defaultLinearGradient, 		//	dojo.gfx.defaultRadialGradient, 		//	dojo.gfx.defaultPattern, 		//	or dojo.gfx.color.Color)		return this.fillStyle;	// Object	},	getStroke: function(){		// summary: returns the current stroke object or null		//	(see dojo.gfx.defaultStroke) 		return this.strokeStyle;	// Object	},	getParent: function(){		// summary: returns the parent or null		//	(see dojo.gfx.Surface,		//	dojo.gfx.shape.VirtualGroup,		//	or dojo.gfx.Group)		return this.parent;	// Object	},	getBoundingBox: function(){		// summary: returns the bounding box or null		//	(see dojo.gfx.defaultRect)		return this.bbox;	// dojo.gfx.Rectangle	},	getEventSource: function(){		// summary: returns a Node, which is used as 		//	a source of events for this shape		return this.rawNode;	// Node	},		// empty settings		setShape: function(shape){		// summary: sets a shape object		//	(the default implementation simply ignores it)		// shape: Object: a shape object		//	(see dojo.gfx.defaultPath,		//	dojo.gfx.defaultPolyline,		//	dojo.gfx.defaultRect,		//	dojo.gfx.defaultEllipse,		//	dojo.gfx.defaultCircle,		//	dojo.gfx.defaultLine,		//	or dojo.gfx.defaultImage)		return this;	// self	},	setFill: function(fill){		// summary: sets a fill object		//	(the default implementation simply ignores it)		// fill: Object: a fill object		//	(see dojo.gfx.defaultLinearGradient, 		//	dojo.gfx.defaultRadialGradient, 		//	dojo.gfx.defaultPattern, 		//	or dojo.gfx.color.Color)		return this;	// self	},	setStroke: function(stroke){		// summary: sets a stroke object		//	(the default implementation simply ignores it)		// stroke: Object: a stroke object		//	(see dojo.gfx.defaultStroke) 		return this;	// self	},		// z-index		moveToFront: function(){		// summary: moves a shape to front of its parent's list of shapes		//	(the default implementation does nothing)		return this;	// self	},	moveToBack: function(){		// summary: moves a shape to back of its parent's list of shapes		//	(the default implementation does nothing)		return this;	},	setTransform: function(matrix){		// summary: sets a transformation matrix		// matrix: dojo.gfx.matrix.Matrix: a matrix or a matrix-like object		//	(see an argument of dojo.gfx.matrix.Matrix 		//	constructor for a list of acceptable arguments)		this.matrix = dojo.gfx.matrix.clone(matrix ? dojo.gfx.matrix.normalize(matrix) : dojo.gfx.identity, true);		return this._applyTransform();	// self	},		// apply left & right transformation		applyRightTransform: function(matrix){		// summary: multiplies the existing matrix with an argument on right side		//	(this.matrix * matrix)		// matrix: dojo.gfx.matrix.Matrix: a matrix or a matrix-like object		//	(see an argument of dojo.gfx.matrix.Matrix 		//	constructor for a list of acceptable arguments)		return matrix ? this.setTransform([this.matrix, matrix]) : this;	// self	},	applyLeftTransform: function(matrix){		// summary: multiplies the existing matrix with an argument on left side		//	(matrix * this.matrix)		// matrix: dojo.gfx.matrix.Matrix: a matrix or a matrix-like object		//	(see an argument of dojo.gfx.matrix.Matrix 		//	constructor for a list of acceptable arguments)		return matrix ? this.setTransform([matrix, this.matrix]) : this;	// self	},	applyTransform: function(matrix){		// summary: a shortcut for dojo.gfx.Shape.applyRight		// matrix: dojo.gfx.matrix.Matrix: a matrix or a matrix-like object		//	(see an argument of dojo.gfx.matrix.Matrix 		//	constructor for a list of acceptable arguments)		return matrix ? this.setTransform([this.matrix, matrix]) : this;	// self	},		// virtual group methods		remove: function(silently){		// summary: removes the shape from its parent's list of shapes		// silently: Boolean?: if true, do not redraw a picture yet		if(this.parent){			this.parent.remove(this, silently);		}		return this;	// self	},	_setParent: function(parent, matrix){		// summary: sets a parent		// parent: Object: a parent or null		//	(see dojo.gfx.Surface,		//	dojo.gfx.shape.VirtualGroup,		//	or dojo.gfx.Group)		// matrix: dojo.gfx.matrix.Matrix:		//	a 2D matrix or a matrix-like object		this.parent = parent;		return this._updateParentMatrix(matrix);	// self	},	_updateParentMatrix: function(matrix){		// summary: updates the parent matrix with new matrix		// matrix: dojo.gfx.matrix.Matrix:		//	a 2D matrix or a matrix-like object		this.parentMatrix = matrix ? dojo.gfx.matrix.clone(matrix) : null;		return this._applyTransform();	// self	},	_getRealMatrix: function(){		// summary: returns the cumulative ("real") transformation matrix		//	by combining the shape's matrix with its parent's matrix		return this.parentMatrix ? new dojo.gfx.matrix.Matrix2D([this.parentMatrix, this.matrix]) : this.matrix;	// dojo.gfx.matrix.Matrix	}});dojo.declare("dojo.gfx.shape.VirtualGroup", dojo.gfx.Shape, {	// summary: a virtual group of shapes, which can be used 	//	as a foundation for renderer-specific groups, or as a way 	//	to logically group shapes (e.g, to propagate matricies)	initializer: function() {			// children: Array: a list of children		this.children = [];	},		// group management		add: function(shape){		// summary: adds a shape to the list		// shape: dojo.gfx.Shape: a shape		var oldParent = shape.getParent();		if(oldParent){			oldParent.remove(shape, true);		}		this.children.push(shape);		return shape._setParent(this, this._getRealMatrix());	// self	},	remove: function(shape, silently){		// summary: removes a shape from the list		// silently: Boolean?: if true, do not redraw a picture yet		for(var i = 0; i < this.children.length; ++i){			if(this.children[i] == shape){				if(silently){					// skip for now				}else{					shape._setParent(null, null);				}				this.children.splice(i, 1);				break;			}		}		return this;	// self	},		// apply transformation		_applyTransform: function(){		// summary: applies a transformation matrix to a group		var matrix = this._getRealMatrix();		for(var i = 0; i < this.children.length; ++i){			this.children[i]._updateParentMatrix(matrix);		}		return this;	// self	}});dojo.declare("dojo.gfx.shape.Rect", dojo.gfx.Shape, {	// summary: a generic rectangle		initializer: function(rawNode) {		// summary: creates a rectangle		// rawNode: Node: a DOM Node		this.shape = dojo.lang.shallowCopy(dojo.gfx.defaultRect, true);		this.attach(rawNode);	},		getBoundingBox: function(){		// summary: returns the bounding box (its shape in this case)		return this.shape;	// dojo.gfx.Rectangle	}});dojo.declare("dojo.gfx.shape.Ellipse", dojo.gfx.Shape, {	// summary: a generic ellipse		initializer: function(rawNode) {		// summary: creates an ellipse		// rawNode: Node: a DOM Node		this.shape = dojo.lang.shallowCopy(dojo.gfx.defaultEllipse, true);		this.attach(rawNode);	},	getBoundingBox: function(){		// summary: returns the bounding box		if(!this.bbox){			var shape = this.shape;			this.bbox = {x: shape.cx - shape.rx, y: shape.cy - shape.ry, 				width: 2 * shape.rx, height: 2 * shape.ry};		}		return this.bbox;	// dojo.gfx.Rectangle	}});dojo.declare("dojo.gfx.shape.Circle", dojo.gfx.Shape, {	// summary: a generic circle	//	(this is a helper object, which is defined for convinience)	initializer: function(rawNode) {		// summary: creates a circle		// rawNode: Node: a DOM Node		this.shape = dojo.lang.shallowCopy(dojo.gfx.defaultCircle, true);		this.attach(rawNode);	},	getBoundingBox: function(){		// summary: returns the bounding box		if(!this.bbox){			var shape = this.shape;			this.bbox = {x: shape.cx - shape.r, y: shape.cy - shape.r, 				width: 2 * shape.r, height: 2 * shape.r};		}		return this.bbox;	// dojo.gfx.Rectangle	}});dojo.declare("dojo.gfx.shape.Line", dojo.gfx.Shape, {	// summary: a generic line	//	(this is a helper object, which is defined for convinience)	initializer: function(rawNode) {		// summary: creates a line		// rawNode: Node: a DOM Node		this.shape = dojo.lang.shallowCopy(dojo.gfx.defaultLine, true);		this.attach(rawNode);	},	getBoundingBox: function(){		// summary: returns the bounding box		if(!this.bbox){			var shape = this.shape;			this.bbox = {				x:		Math.min(shape.x1, shape.x2),				y:		Math.min(shape.y1, shape.y2),				width:	Math.abs(shape.x2 - shape.x1),				height:	Math.abs(shape.y2 - shape.y1)			};		}		return this.bbox;	// dojo.gfx.Rectangle	}});dojo.declare("dojo.gfx.shape.Polyline", dojo.gfx.Shape, {	// summary: a generic polyline/polygon	//	(this is a helper object, which is defined for convinience)	initializer: function(rawNode) {		// summary: creates a line		// rawNode: Node: a DOM Node		this.shape = dojo.lang.shallowCopy(dojo.gfx.defaultPolyline, true);		this.attach(rawNode);	},	getBoundingBox: function(){		// summary: returns the bounding box		if(!this.bbox && this.shape.points.length){			var p = this.shape.points;			var l = p.length;			var t = p[0];			var bbox = {l: t.x, t: t.y, r: t.x, b: t.y};			for(var i = 1; i < l; ++i){				t = p[i];				if(bbox.l > t.x) bbox.l = t.x;				if(bbox.r < t.x) bbox.r = t.x;				if(bbox.t > t.y) bbox.t = t.y;				if(bbox.b < t.y) bbox.b = t.y;			}			this.bbox = {				x:		bbox.l, 				y:		bbox.t, 				width:	bbox.r - bbox.l, 				height:	bbox.b - bbox.t			};		}		return this.bbox;	// dojo.gfx.Rectangle	}});dojo.declare("dojo.gfx.shape.Image", dojo.gfx.Shape, {	// summary: a generic image	//	(this is a helper object, which is defined for convinience)	initializer: function(rawNode) {		// summary: creates an image		// rawNode: Node: a DOM Node		this.shape = dojo.lang.shallowCopy(dojo.gfx.defaultImage, true);		this.attach(rawNode);	},	getBoundingBox: function(){		// summary: returns the bounding box		if(!this.bbox){			var shape = this.shape;			this.bbox = {				x:		0,				y:		0,				width:	shape.width,				height:	shape.height			};		}		return this.bbox;	// dojo.gfx.Rectangle	}});

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品高清在线观看| 青青草成人在线观看| 日韩亚洲国产中文字幕欧美| 成人美女视频在线看| 视频一区国产视频| 一区二区中文字幕在线| 久久亚洲一级片| 欧美乱妇15p| 91麻豆免费视频| 国产精品一区不卡| 久久精品国产99国产精品| 亚洲第一会所有码转帖| 国产精品国产三级国产aⅴ中文 | 国产高清不卡二三区| 亚洲老司机在线| 国产精品麻豆久久久| 久久久久久久精| 日韩久久精品一区| 欧美一区二区观看视频| 欧美日韩激情一区| 在线观看国产一区二区| 91网站在线播放| 99亚偷拍自图区亚洲| 国产成人久久精品77777最新版本| 男人的j进女人的j一区| 五月激情丁香一区二区三区| 一区二区三区欧美视频| 亚洲免费在线观看视频| 最新日韩av在线| 亚洲欧洲av色图| 中文字幕一区二区三区在线不卡 | 在线观看国产日韩| 在线一区二区视频| 欧美亚洲国产一区二区三区va| 99久久精品国产导航| 99久久精品费精品国产一区二区| 成人性生交大片免费看视频在线 | 国产精品视频在线看| 欧美国产一区在线| 国产精品乱码一区二区三区软件 | 精品日韩在线观看| 欧美tickling网站挠脚心| 日韩视频一区二区三区| 日韩美女在线视频| 久久久精品黄色| 中文字幕成人av| 国产精品的网站| 一区二区三区四区激情| 亚洲国产精品一区二区久久恐怖片| 欧美a级理论片| 国内一区二区视频| 国产成人精品影视| 91免费看`日韩一区二区| 91高清在线观看| 欧美日韩成人在线一区| 日韩午夜精品电影| 26uuu成人网一区二区三区| 欧美激情一区二区三区在线| 国产精品久久久久aaaa樱花| 亚洲乱码国产乱码精品精98午夜| 亚洲图片欧美一区| 精品一区二区精品| 99精品久久99久久久久| 欧美日韩极品在线观看一区| 精品国产露脸精彩对白| 日本一区二区视频在线| 亚洲国产色一区| 韩国视频一区二区| 色综合久久天天| 日韩欧美黄色影院| 综合色天天鬼久久鬼色| 日本欧美在线观看| 成人激情视频网站| 91精品国产色综合久久久蜜香臀| 久久久国产午夜精品| 一区二区三区日韩精品视频| 日韩电影在线一区二区| 成人一区二区三区视频| 欧美日韩三级视频| 久久美女艺术照精彩视频福利播放| 亚洲人成7777| 久久99热这里只有精品| 91免费看视频| 久久日一线二线三线suv| 亚洲综合在线电影| 国产一区视频网站| 欧美日韩国产123区| 国产精品无人区| 美女视频黄频大全不卡视频在线播放 | 欧美tk—视频vk| 亚洲综合在线免费观看| 国产精品羞羞答答xxdd | 中文字幕免费观看一区| 视频在线在亚洲| 91精品国产91久久久久久一区二区 | 免费人成在线不卡| 一本色道久久综合精品竹菊| 日韩精品一区在线| 亚洲成人动漫在线免费观看| 国产91在线|亚洲| 欧美电影免费观看高清完整版| 亚洲精品欧美激情| 不卡av电影在线播放| 26uuu精品一区二区| 丝袜亚洲另类欧美| 色一区在线观看| 国产精品福利一区二区| 国产精品正在播放| 欧美白人最猛性xxxxx69交| 五月婷婷欧美视频| 91久久精品一区二区二区| 精品国产sm最大网站免费看| 午夜欧美电影在线观看| 色噜噜偷拍精品综合在线| 国产视频一区二区三区在线观看| 日本欧美久久久久免费播放网| 91黄色激情网站| 亚洲欧美偷拍三级| 91丝袜高跟美女视频| 国产精品乱子久久久久| 成人手机电影网| 国产午夜精品一区二区三区视频| 久久99久久99精品免视看婷婷 | 一区在线播放视频| 成人av免费观看| 国产精品污网站| 岛国av在线一区| 国产日韩精品一区二区三区| 狠狠色丁香九九婷婷综合五月| 日韩美女天天操| 久久不见久久见免费视频7| 日韩欧美黄色影院| 精品影视av免费| 久久综合99re88久久爱| 国产尤物一区二区在线| 亚洲精品在线一区二区| 精品中文字幕一区二区小辣椒| 精品88久久久久88久久久| 国产精品一区久久久久| 中文字幕精品三区| 91在线视频网址| 一区二区免费在线| 欧美另类变人与禽xxxxx| 成人黄色免费短视频| 国产精品视频免费| 91亚洲精品久久久蜜桃网站| 亚洲精品欧美二区三区中文字幕| 在线观看成人小视频| 亚洲电影中文字幕在线观看| 欧美人动与zoxxxx乱| 老司机免费视频一区二区三区| 欧美电影免费观看高清完整版在| 国精产品一区一区三区mba桃花 | 亚洲国产高清在线| 91蜜桃在线观看| 日韩精品1区2区3区| 精品国一区二区三区| 成人免费毛片a| 亚洲精品国产无天堂网2021| 欧美影院一区二区| 精品一区二区免费| 亚洲欧美另类久久久精品2019| 欧美日韩免费高清一区色橹橹| 日本aⅴ精品一区二区三区| 久久精品视频在线免费观看| va亚洲va日韩不卡在线观看| 亚洲国产一区二区三区| 精品精品国产高清a毛片牛牛| 成人免费视频播放| 亚洲成av人片在线| 久久久久国产精品免费免费搜索| 99精品在线观看视频| 日韩国产欧美在线观看| 国产三级欧美三级日产三级99| 色综合色综合色综合 | 色狠狠桃花综合| 麻豆精品新av中文字幕| 亚洲色图制服丝袜| 日韩欧美高清一区| 色88888久久久久久影院按摩| 天天操天天干天天综合网| 日本一区二区视频在线| 欧美夫妻性生活| 91影院在线免费观看| 韩日av一区二区| 无码av中文一区二区三区桃花岛| 国产亚洲一区二区在线观看| 欧美中文字幕一二三区视频| 国产精品66部| 美国精品在线观看| 亚洲激情图片一区| 国产欧美日韩综合| 91精品欧美福利在线观看| 色综合久久久久久久| 国产不卡一区视频| 精品中文字幕一区二区| 日韩中文字幕1| 亚洲婷婷在线视频| 久久精品无码一区二区三区| 欧美激情在线观看视频免费|