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

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

?? dographelement.js

?? 流程圖的制作
?? JS
字號:
// this file contains the basic method for graph-element eg.NodeCreate NodeRedraw and so on.
/*
 * @author: shennan , amushen@yahoo.com.cn
 */
 
function calcArrowPoint(sPoint,dPoint){
//determine the arrowPoints regarded by the source and the destination point 	
	var ret=new Array(2);
	var p1=new Position();
	var p2=new Position();
	var d=Math.sqrt((dPoint.top-sPoint.top)*(dPoint.top-sPoint.top)+(dPoint.left-sPoint.left)*(dPoint.left-sPoint.left));
	p1.left = dPoint.left + 10 * ((sPoint.left - dPoint.left) + (sPoint.top - dPoint.top) / 2) / d;	
	p1.top = dPoint.top + 10 * ((sPoint.top - dPoint.top) - (sPoint.left - dPoint.left) / 2) / d; 
	p2.left = dPoint.left + 10 * ((sPoint.left - dPoint.left) - (sPoint.top - dPoint.top) / 2) / d; 
	p2.top = dPoint.top + 10 * ((sPoint.top - dPoint.top) + (sPoint.left - dPoint.left) / 2) / d; 	
	ret[0]=p1;ret[1]=p2;
	return ret;
}

function getLineSDPoint(line){
// according the sourceNode and DetinationNode to determine the line's sPoint midPoint and dPoint
	if(line.source==null||line.destination==null)return;
	if(nodes.length<2)return;	//if there is not at least two node , then return
	var sDom=$("node"+line.source);
	var dDom=$("node"+line.destination);
	var p1,p2,p3,p4;
	var d1,d2,d3,d4;
	p1=new Position(sDom.style.posTop,sDom.style.posLeft);	//top-left
	p2=new Position(p1.top,p1.left+sDom.offsetWidth);	//top-right;
	p3=new Position(p1.top+sDom.offsetHeight,p1.left);	//bottem-left;
	p4=new Position(p1.top+sDom.offsetHeight,p1.left+sDom.offsetWidth);		//bottom-right
	d1=new Position(dDom.style.posTop,dDom.style.posLeft);	//top-left
	d2=new Position(d1.top,d1.left+dDom.offsetWidth);	//top-right;
	d3=new Position(d1.top+dDom.offsetHeight,d1.left);	//bottem-left;
	d4=new Position(d1.top+dDom.offsetHeight,d1.left+dDom.offsetWidth);

	if((p1.top+sDom.offsetHeight)<d1.top){
		//source is above the destination
		line.sPoint=new Position(p3.top,(p3.left+p4.left)/2);
		line.dPoint=new Position(d1.top,(d1.left+d2.left)/2);
		line.midPoint=new Position((p3.top+d1.top)/2,(line.sPoint.left+line.dPoint.left)/2);
	}else if((d1.top+dDom.offsetHeight)<p1.top){
		//destination is above the source
		line.sPoint=new Position(p1.top,(p1.left+p2.left)/2);
		line.dPoint=new Position(d3.top,(d3.left+d4.left)/2);
		line.midPoint=new Position((d3.top+p1.top)/2,(line.sPoint.left+line.dPoint.left)/2);
	}else if(p1.left<d1.left){
		//source is at the left of the destination
		line.sPoint=new Position((p2.top+p4.top)/2,p2.left);
		line.dPoint=new Position((d1.top+d3.top)/2,d1.left);
		line.midPoint=new Position((line.sPoint.top+line.dPoint.top)/2,(line.sPoint.left+line.dPoint.left)/2);
	}else{
		//source is at the right of the destination
		line.sPoint=new Position((p1.top+p3.top)/2,p1.left);
		line.dPoint=new Position((d2.top+d4.top)/2,d2.left);
		line.midPoint=new Position((line.sPoint.top+line.dPoint.top)/2,(line.sPoint.left+line.dPoint.left)/2);		
	}
	return line;
}


function calcInOutLine(index){
//calculate the inlines and outlines of a node which index is parameter : index	
var i,inline=new Array(),outline=new Array();
for(i=0;i<lines.length;i++){
	if(lines[i]==null)continue;
	if(lines[i].source==index) outline[outline.length]=i;
	if(lines[i].destination==index) inline[inline.length]=i;
}
nodes[index].inLine=inline;
nodes[index].outLine=outline;
}

function _judgeNodeAndMidPos(nodeId,lineId,/* flag==1?source:destination*/flag){
	//判斷節點和線中間塊的位置關系
	//返回:1 左;2上;3右;4下
	var node=$("node"+nodeId);
	var mid=$("mid"+lineId);
	var p1,p2,p3,p4,d1,d2,d3,d4;
	p1=new Position(node.style.posTop,node.style.posLeft);	//top-left
	p2=new Position(p1.top,p1.left+node.offsetWidth);	//top-right;
	p3=new Position(p1.top+node.offsetHeight,p1.left);	//bottem-left;
	p4=new Position(p1.top+node.offsetHeight,p1.left+node.offsetWidth);		//bottom-right
	d1=new Position(mid.style.posTop,mid.style.posLeft);	//top-left
	d2=new Position(d1.top,d1.left+mid.offsetWidth);	//top-right;
	d3=new Position(d1.top+mid.offsetHeight,d1.left);	//bottem-left;
	d4=new Position(d1.top+mid.offsetHeight,d1.left+mid.offsetWidth);
	
	var pp=flag==1?lines[lineId].sPoint:lines[lineId].dPoint;	//the target which is to be changed
	if((p1.top+node.offsetHeight)<d1.top){
		pp.top=p3.top;
		pp.left=(p3.left+p4.left)/2;
		return 2;
	}else if((d1.top+mid.offsetHeight)<p1.top){
		pp.top=p1.top;
		pp.left=(p1.left+p2.left)/2;
		return 4;
	}else if(p1.left<d1.left){
		pp.left=p2.left;
		pp.top=(p2.top+p4.top)/2;
		return 1;
	}else{
		pp.left=p1.left;
		pp.top=(p1.top+p3.top)/2;
		return 3;
	}	

}

function moveRelevantLines(index){
// redraw the lines that is connected on the nodes[index]
	var atop=nodes[index].position.top-event.top;	//the - between the new top and old top
	var aleft=nodes[index].position.left-event.left;
	var i;
	for(i=0;nodes[index].inLine!=null&&i<nodes[index].inLine.length;i++){
		lines[nodes[index].inLine[i]].dPoint.top-=atop;
		lines[nodes[index].inLine[i]].dPoint.left-=aleft;
		//judge the posiiton with the midPoint
		_judgeNodeAndMidPos(index,nodes[index].inLine[i],2);
		
		reDrawLine(nodes[index].inLine[i]);
	}
	for(i=0;nodes[index].outLine!=null&&i<nodes[index].outLine.length;i++){
		lines[nodes[index].outLine[i]].sPoint.top-=atop;
		lines[nodes[index].outLine[i]].sPoint.left-=aleft;
		//judge the posiiton with the midPoint
		_judgeNodeAndMidPos(index,nodes[index].outLine[i],1);

		reDrawLine(nodes[index].outLine[i]);
	}
	//update new position
	nodes[index].position.top=event.top;
	nodes[index].position.left=event.left;

}

function reDrawLine(index){
// for some reasons , the line's position is changed,so we must redraw the line	
	//showHip('redrawline'+index);
	var pp=calcArrowPoint(lines[index].midPoint,lines[index].dPoint);
	var line=lines[index];
	//var cmd="line"+index+".points.value='"+lines[index].sPoint.left+","+lines[index].sPoint.top+","+lines[index].midPoint.left+","+lines[index].midPoint.top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[0].left+","+pp[0].top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[1].left+","+pp[1].top+"'";
	var old=$("line"+line.index);
	old.points.value="'"+lines[index].sPoint.left+","+lines[index].sPoint.top+","+lines[index].midPoint.left+","+lines[index].midPoint.top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[0].left+","+pp[0].top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[1].left+","+pp[1].top+"'";
//	var html="<v:polyline id='line"+line.index+"' style='position:absolute;top:0px;left:0px;Z-INDEX:1;' points='"+line.sPoint.left+","+line.sPoint.top+","+line.midPoint.left+","+line.midPoint.top+","+line.dPoint.left+","+line.dPoint.top+","+pp[0].left+","+pp[0].top+","+line.dPoint.left+","+line.dPoint.top+","+pp[1].left+","+pp[1].top+"' filled='f' />";
	
//	var newLine=document.createElement(html);
//	newLine.id="line"+index;
//	newLine.style.position="absolute";
//	newLine.style.top=0;
//	newLine.style.left=0;
//	newLine.points.value="'"+lines[index].sPoint.left+","+lines[index].sPoint.top+","+lines[index].midPoint.left+","+lines[index].midPoint.top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[0].left+","+pp[0].top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[1].left+","+pp[1].top+"'";
//	newLine.filled="f";
//	container.removeChild(old);
//	container.appendChild(newLine);
}
function reDrawLineMid(index){
//move the midPoint so we must redraw line
	var left,top;
	top=event.top+3;
	left=event.left+3;
	lines[index].midPoint.left=left;
	lines[index].midPoint.top=top;
	//judge the position with the sPoint and dPoint
	_judgeNodeAndMidPos(lines[index].source,index,1);
	_judgeNodeAndMidPos(lines[index].destination,index,2);
	var line=lines[index];
	var pp=calcArrowPoint(lines[index].midPoint,lines[index].dPoint);
	var old=$("line"+line.index);
	old.points.value="'"+lines[index].sPoint.left+","+lines[index].sPoint.top+","+lines[index].midPoint.left+","+lines[index].midPoint.top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[0].left+","+pp[0].top+","+lines[index].dPoint.left+","+lines[index].dPoint.top+","+pp[1].left+","+pp[1].top+"'";
	cmd="lineText"+index+".style.top='"+(lines[index].midPoint.top-6)+"px';";
	eval(cmd);
	cmd="lineText"+index+".style.left='"+(lines[index].midPoint.left+10)+"px';";
	eval(cmd);
}

////////////////crete the HtmlObject
function _getNodeClass(type){
	//select the different style accroding to the type
	var rst="node";
	switch(type){
		case 1:
			rst="beginNode";
			break;
		case 2:
			rst="generalNode";
			break;
		case 3:
			rst="forkNode";
			break;
		case 4:
			rst="joinNode";
			break;		
		case 99:
			rst="endNode";
			break;
	}
	return rst;
}

function createNode(node){
	var html="";
	var clazz=_getNodeClass(node.type);
	html="<div id='node"+node.index+"' onBeginDrag='calcInOutLine("+node.index+");' onSelected='selectThisNode("+node.index+");' onDraging='moveRelevantLines("+node.index+")' class='"+clazz+"' style='top:"+node.position.top+";left:"+node.position.left+";z-index:"+(currentIndex++)+"'><table border=0 width=100% height=100%><tr><td align=center valign=middle style='font-size:12px'>"+node.name+"</td></tr></table></div>";
	var nc=document.createElement("div");
	nc.id="nc"+node.index;
	document.body.appendChild(nc);
	nc.innerHTML+=html;
}

function canDragOfNode(index){
	if(index!=null){
		eval("$('node"+index+"').style.behavior='url(../htc/sndrag.htc)';");
		return;
	}
	var i;
	for(i=0;i<nodes.length;i++)
		eval("$('node"+i+"').style.behavior='url(../htc/sndrag.htc)';");
}

function canDragOfLine(index){
	if(index!=null){
		eval("$('mid"+index+"').style.behavior='url(../htc/sndrag.htc)';");
		return;
	}
	var i;
	for(i=0;i<nodes.length;i++)
		eval("$('mid"+i+"').style.behavior='url(../htc/sndrag.htc)';");
}

function createLine(line){
	//alert(line.name);
	var html;
	var pp=calcArrowPoint(line.midPoint,line.dPoint);	
	html="<v:polyline id='line"+line.index+"' style='position:absolute;top:0px;left:0px;Z-INDEX:"+(currentIndex)+";' points='"+line.sPoint.left+","+line.sPoint.top+","+line.midPoint.left+","+line.midPoint.top+","+line.dPoint.left+","+line.dPoint.top+","+pp[0].left+","+pp[0].top+","+line.dPoint.left+","+line.dPoint.top+","+pp[1].left+","+pp[1].top+"' filled='f' />";
	html+="<img id='mid"+line.index+"' onselected='selectThisLine("+line.index+")' onDraging='reDrawLineMid("+line.index+")' class='mid' style='Z-INDEX:"+(currentIndex)+";top:"+(line.midPoint.top-3)+";left:"+(line.midPoint.left-3)+"' />";
	html+="<div id='lineText"+line.index+"' style='top:"+(line.midPoint.top-6)+";left:"+(line.midPoint.left+10)+";z-index:"+(currentIndex++)+"' class='linetext' >"+line.name+"</div>";
	var lc=document.createElement("div");
	lc.id="lc"+line.index;
	document.body.appendChild(lc);
	lc.innerHTML+=html;
}

function setNodeName(index){
	if(nodes[index]==null)return;
	$('node'+index).children[0].rows[0].cells[0].innerHTML=nodes[index].name;
}
function setLineName(index){
	if(lines[index]==null)return;
	$('lineText'+index).innerHTML=lines[index].name;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
3d动漫精品啪啪一区二区竹菊| 久久九九国产精品| 精品国产一区二区三区忘忧草 | 亚洲五月六月丁香激情| 狠狠狠色丁香婷婷综合激情| 欧美日韩一区二区三区不卡| 欧美专区在线观看一区| 国产精品一区二区x88av| 成人av免费在线观看| 欧美成人伊人久久综合网| 亚洲伦理在线免费看| 成人性视频免费网站| 欧美α欧美αv大片| 日本欧美在线观看| 欧美亚洲国产一区在线观看网站 | av影院午夜一区| 久久久久国产成人精品亚洲午夜| 美女精品自拍一二三四| 欧美高清dvd| 天堂成人免费av电影一区| 欧美中文字幕一二三区视频| 亚洲人成网站精品片在线观看| 成人av在线观| 国产精品福利电影一区二区三区四区| 国产一区二区导航在线播放| 日韩欧美国产一二三区| 日本美女一区二区| 国产视频一区二区在线观看| 日韩中文字幕麻豆| 欧美日韩国产色站一区二区三区| 一区二区三区中文字幕精品精品 | 国产成人亚洲精品狼色在线| 精品国产在天天线2019| 韩日精品视频一区| 久久这里都是精品| 国产成人午夜视频| 国产精品毛片久久久久久| 成人黄色电影在线| 一个色综合av| 欧美日本韩国一区| 国产综合久久久久久久久久久久| 久久久99精品久久| 99re视频精品| 亚洲地区一二三色| 欧美一二三在线| 国产精品99久久久久久似苏梦涵 | 欧美激情在线一区二区三区| 粉嫩aⅴ一区二区三区四区| 国产精品久久久久四虎| 色婷婷av一区二区三区软件 | 亚洲欧洲一区二区三区| 色久综合一二码| 日韩成人dvd| 精品人伦一区二区色婷婷| 国产a级毛片一区| 亚洲乱码国产乱码精品精小说| 欧美性xxxxx极品少妇| 天堂一区二区在线| 国产日韩v精品一区二区| 91国偷自产一区二区三区观看| 亚洲成人黄色小说| 欧美精品一区二区三区高清aⅴ | 麻豆视频一区二区| 欧美电影免费观看高清完整版在线观看 | 久久精品国产99国产| 337p粉嫩大胆噜噜噜噜噜91av| 成人的网站免费观看| 亚洲高清一区二区三区| 日韩欧美国产综合在线一区二区三区| 国产高清精品久久久久| 亚洲尤物在线视频观看| 欧美精品一区在线观看| 在线视频综合导航| 韩国毛片一区二区三区| 亚洲另类中文字| 精品福利一二区| 在线视频国内一区二区| 国产乱码字幕精品高清av| 亚洲影院在线观看| 国产嫩草影院久久久久| 日韩欧美三级在线| 色婷婷综合久久| 成人小视频在线| 另类调教123区 | 国产精品成人免费精品自在线观看 | 精品国产乱码久久久久久1区2区 | 亚洲一区二区精品久久av| 国产午夜精品久久久久久久| 欧美男同性恋视频网站| 99热精品一区二区| 国产剧情一区二区| 美国精品在线观看| 日韩国产欧美在线播放| 亚洲精品成人在线| 中文字幕亚洲一区二区av在线| 久久青草国产手机看片福利盒子 | 综合中文字幕亚洲| 中文字幕免费在线观看视频一区| 91精品国产乱码| 9191久久久久久久久久久| 色狠狠av一区二区三区| 99re成人精品视频| 不卡av在线网| 国产91富婆露脸刺激对白| 狠狠色狠狠色综合| 国内精品第一页| 美女一区二区久久| 美女视频一区在线观看| 日韩电影免费在线看| 五月天激情综合网| 日韩成人一级片| 免费黄网站欧美| 久久激情五月激情| 国内精品国产成人| 国产精品一区二区久激情瑜伽| 精品一区二区三区在线观看 | 99久久久久免费精品国产| 国产99久久久国产精品潘金| 激情文学综合插| 国产成人av影院| 99国内精品久久| 欧美性一二三区| 91精品国产综合久久久久久| 欧美一区二区三区的| 日韩欧美另类在线| 国产日韩欧美制服另类| 成人免费在线视频观看| 一区二区三区免费网站| 肉肉av福利一精品导航| 国内久久婷婷综合| kk眼镜猥琐国模调教系列一区二区| 一本色道久久综合亚洲91| 欧美日韩高清一区| 精品99999| 国产精品短视频| 亚洲成av人片在www色猫咪| 久久99精品一区二区三区三区| 国产精品一区2区| 在线视频你懂得一区| 日韩视频一区在线观看| 中文字幕一区二区在线观看 | 亚洲天堂成人网| 午夜伦欧美伦电影理论片| 韩国av一区二区三区四区| 99视频有精品| 91精品国产综合久久国产大片 | 天天影视色香欲综合网老头| 精品在线视频一区| 色综合一区二区三区| 91精品欧美久久久久久动漫| 国产三级精品三级在线专区| 亚洲一区av在线| 国产乱理伦片在线观看夜一区| 欧亚洲嫩模精品一区三区| 欧美精品一区二区三区很污很色的| 综合久久给合久久狠狠狠97色| 秋霞影院一区二区| 色婷婷久久一区二区三区麻豆| 欧美精品一区二区三区久久久| 亚洲精品成人精品456| 国产综合久久久久久鬼色| 欧美亚男人的天堂| 亚洲国产精品传媒在线观看| 日韩黄色小视频| 91麻豆精品在线观看| 国产欧美一区二区精品忘忧草| 日本不卡在线视频| 欧美写真视频网站| 亚洲人成网站色在线观看| 国产精品一二三区| 欧美一区二区成人| 亚洲成av人片一区二区三区| av电影在线观看不卡| 久久精品男人天堂av| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本乱人伦aⅴ精品| 国产精品久久久久久亚洲伦 | 日本福利一区二区| 欧美激情自拍偷拍| 国产精品一区免费视频| 日韩欧美成人一区二区| 天天综合网天天综合色| 欧美性受极品xxxx喷水| 亚洲另类色综合网站| 91色视频在线| 亚洲少妇30p| 91免费看片在线观看| 中文字幕一区二区三区色视频| 国产精品一二三区| 久久久久久久久久久久久女国产乱 | av一区二区三区在线| 亚洲国产精品ⅴa在线观看| 国产精品一区二区久激情瑜伽| 精品国产乱码久久久久久1区2区 | 欧美亚男人的天堂| 一区二区国产盗摄色噜噜| 91蜜桃婷婷狠狠久久综合9色| 中文字幕精品一区| 91在线观看污| 亚洲黄色av一区|