拓扑图调查

http://www.cnblogs.com/xiaogangqq123/archive/2011/04/22/2025068.html

http://kzvyg10d.iteye.com/blog/1574297

http://www.shaoqun.com/a/7827.aspx

http://hi.baidu.com/drnadmhzfnacefe/item/758bc35b4d5eed3495eb058a


http://www.nwoods.com/components/canvas/gojs-samples.htm
http://data.yule.sohu.com/star/data/1/1062/
http://slodive.com/web-development/html5-canvas-demos-and-applications/
http://en.inforapid.org/
http://tweezy.net.au/twzERD.html
http://www.1stwebdesigner.com/design/creative-ways-use-html5-canvas/
http://renlifang.msra.cn/guanximap.aspx?q=%E5%A7%9A%E6%98%8E


C:\Program Files\Java\jdk1.6.0_10\demo\applets\GraphLayout
C:\Program Files\Java\jdk1.6.0_10\demo\applets\GraphLayout\example1.html

有源代码

http://www.iteye.com/topic/178003



Jquery的一个例子

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jq实现人物<a href='http://www.logtu.net/html/2669.html'
	target='_blank'><u>结构</u></a>关系图的动态<a
	href='http://www.logtu.net/html/2660.html' target='_blank'><u>显示</u></a>效果
	by www.logtu.net
</title>
<style>
#box {
	width: 500px;
	height: 500px;
	position: relative
}

.host {
	position: absolute;
	width: 100px;
	height: 50px;
	line-height: 50px;
	text-align: center;
	color: #000000;
	background-color: #eeeeee;
	border: #000000 1px solid;
	font-weight: bolder
}

.guest {
	position: absolute;
	width: 80px;
	height: 40px;
	line-height: 40px;
	text-align: center;
	color: #999999;
	background-color: #FFFFFF;
	border: #000000 1px solid;
	cursor: pointer
}

.relationship {
	position: absolute;
	width: 60px;
	height: 20px;
	color: #aaa;
	line-height: 20px;
	font-size: 12px;
	text-align: center
}
</style>
<script
	src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script>


	var relationName = [ {
		name : "成龙",
		friend : [ {
			name : "房祖名",
			relationship : "父子"
		}, {
			name : "林凤娇",
			relationship : "夫妻"
		}, {
			name : "吴绮莉",
			relationship : "绯闻"
		}, {
			name : "徐静蕾",
			relationship : "激吻"
		} ]
	}, {
		name : "房祖名",
		friend : [ {
			name : "成龙",
			relationship : "父子"
		}, {
			name : "林凤娇",
			relationship : "母子"
		}, {
			name : "方大同",
			relationship : "情敌"
		}, {
			name : "薛凯琪",
			relationship : "女友"
		}, {
			name : "陈坤",
			relationship : "朋友"
		}, {
			name : "赵薇",
			relationship : "朋友"
		} ]
	}, {
		name : "林凤娇",
		friend : [ {
			name : "成龙",
			relationship : "夫妻"
		}, {
			name : "房祖名",
			relationship : "母子"
		}, {
			name : "吴绮莉",
			relationship : "情敌"
		} ]
	}, {
		name : "吴绮莉",
		friend : [ {
			name : "成龙",
			relationship : "绯闻"
		}, {
			name : "林凤娇",
			relationship : "情敌"
		}, {
			name : "吴卓林",
			relationship : "母女"
		} ]
	}, {
		name : "徐静蕾",
		friend : [ {
			name : "李亚鹏",
			relationship : "电影"
		}, {
			name : "韩寒",
			relationship : "娱乐圈"
		}, {
			name : "成龙",
			relationship : "激吻"
		}, {
			name : "黄立行",
			relationship : "电影"
		} ]
	}, {
		name : "方大同",
		friend : [ {
			name : "房祖名",
			relationship : "情敌"
		}, {
			name : "薛凯琪",
			relationship : "否认拍拖"
		}, {
			name : "林宥嘉",
			relationship : "歌手"
		}, {
			name : "韩庚",
			relationship : "演唱会"
		} ]
	}, {
		name : "薛凯琪",
		friend : [ {
			name : "方大同",
			relationship : "否认拍拖"
		}, {
			name : "房祖名",
			relationship : "女友"
		} ]
	} ];
	var relation = {
		radius : 150,
		boxW : 500,
		boxH : 500,
		hostW : 100,
		hostH : 50,
		guestW : 80,
		guestH : 40,
		relationW : 60,
		relationH : 20,
		angle : 0,
		id : "box",
		init : function(array, n) {//传入<a href='http://www.logtu.net/html/2636.html' target='_blank'><u>参数</u></a>1:数组 <a href='http://www.logtu.net/html/2636.html' target='_blank'><u>参数</u></a>2:第几个
			this.array = array;
			this.appendHost(this.array, n);
			this.appendQuest(this.array, n);
			this.appendRelationShip(this.array, n);
		},
		appendHost : function(array, n) {
			var box = $("#" + this.id);
			var host = "<span class='host'>" + array[n].name + "</span>";
			box.append(host);
			this.postHost();
		},
		postHost : function() {
			var x = (this.boxW - this.hostW) / 2;
			var y = (this.boxH - this.hostH) / 2;
			$(".host").css({
				left : x,
				top : y
			});
		},
		appendQuest : function(array, n) {
			var box = $("#" + this.id);
			var guests = "";
			var that = this;
			for ( var i = 0; i < array[n].friend.length; i++) {
				guests += "<span class='guest'>" + array[n].friend[i].name
						+ "</span>";
			}
			$(guests).appendTo(box);
			$(".guest").live("click", function() {
				that.move(that, this);
			});
			this.postQuest();
		},
		postQuest : function() {
			var guests = $(".guest");
			var that = this;
			guests.each(function(i) {
				guests.eq(i)
						.css(
								{
									left : that.setQuestPose(guests.length,
											that.radius, i, that.guestW,
											that.guestH, that.angle).left,
									top : that.setQuestPose(guests.length,
											that.radius, i, that.guestW,
											that.guestH, that.angle).top
								}).attr("angle", i / guests.length)
			});
		},
		setQuestPose : function(n, r, i, w, h, d) {//n:代表共几个<a href='http://www.logtu.net/div_css/2518.html' target='_blank'><u>对象</u></a> r代表周长 i代表第几个<a href='http://www.logtu.net/div_css/2518.html' target='_blank'><u>对象</u></a> w代表外面对象的宽带 h代表外面对象的高度 d代表其实角度
			var p = i / n * Math.PI * 2 + Math.PI * 2 * d;
			var x = r * Math.cos(p);
			var y = r * Math.sin(p);
			return {
				"left" : parseInt(this.boxW / 2 + x - w / 2),
				"top" : parseInt(this.boxH / 2 + y - h / 2)
			};
		},
		appendRelationShip : function(array, n) {
			var box = $("#" + this.id);
			var relation = "";
			for ( var i = 0; i < array[n].friend.length; i++) {
				relation += "<span class='relationship'>"
						+ array[n].friend[i].relationship + "</span>";
			}
			box.append(relation);
			this.postRelationShip();
		},
		postRelationShip : function() {
			var guests = $(".relationship");
			var that = this;
			guests.each(function(i) {
				guests.eq(i).css(
						{
							left : that.setQuestPose(guests.length,
									that.radius / 2, i, that.relationW,
									that.relationH, that.angle).left,
							top : that.setQuestPose(guests.length,
									that.radius / 2, i, that.relationW,
									that.relationH, that.angle).top
						});
			});
		},
		move : function(t, i) {
			var n = $(".guest").index($(i));
			this.angle = parseFloat($(i).attr("angle")) + 0.5;
			this.delect(n);
			this.moveHost(i);
			this.moveQuest(i);
			this.moveRelationship(i);
			this.changeClass();
			setTimeout(function() {
				t.newAppend(i);
			}, 500);
		},
		newAppend : function(i) {
			this.newAppendGuest(i, "guest", "name", this.guestW, this.guestH,
					this.radius);
			this.newAppendGuest(i, "relationship", "relationship",
					this.relationW, this.relationH, this.radius / 2);
		},
		newAppendGuest : function(i, className, name, w, h, r) {
			var host = $(i).html();
			var guest = $(".guest").html();
			var box = $("#" + this.id);
			var that = this;
			var next = 0;
			for ( var i = 0; i < this.array.length; i++) {
				if (host == this.array[i].name) {
					for ( var j = 0; j < this.array[i].friend.length; j++) {
						if (guest !== this.array[i].friend[j].name) {
							next++;
							var guests = "<span class='"+className+"'>"
									+ this.array[i].friend[j][name] + "</span>";
							$(guests).appendTo(box).css(
									{
										left : that.setQuestPose(
												this.array[i].friend.length, r,
												next, w, h, that.angle).left,
										top : that.setQuestPose(
												this.array[i].friend.length, r,
												next, w, h, that.angle).top
									}).attr(
									"angle",
									that.angle + next
											/ this.array[i].friend.length)
									.hide().fadeIn(1000);
						}
					}
				}
			}
		},
		moveHost : function(i) {
			var hLeft = parseInt($(".host").css("left")) + this.hostW / 2;
			var hTop = parseInt($(".host").css("top")) + this.hostH / 2;
			var gLeft = parseInt($(i).css("left")) + this.guestW / 2;
			var gTop = parseInt($(i).css("top")) + this.guestH / 2;
			var l = gLeft - hLeft;
			var t = gTop - hTop;
			var left = (hLeft - l - this.guestW / 2) + "px";
			var top = (hTop - t - this.guestH / 2) + "px";
			this.animate(".host", left, top);
		},
		moveRelationship : function(i) {
			var hLeft = parseInt($(".host").css("left")) + this.hostW / 2;
			;
			var hTop = parseInt($(".host").css("top")) + this.hostH / 2;
			var gLeft = parseInt($(".relationship").css("left"))
					+ this.relationW / 2;
			var gTop = parseInt($(".relationship").css("top")) + this.relationH
					/ 2;
			var l = gLeft - hLeft;
			var t = gTop - hTop;
			var left = (hLeft - l - this.relationW / 2) + "px";
			var top = (hTop - t - this.relationH / 2) + "px";
			this.animate(".relationship", left, top);
		},
		moveQuest : function(i) {
			var left = $(".host").css("left");
			var top = $(".host").css("top");
			this.animate(i, left, top);
		},
		delect : function(n) {
			$(".guest").slice(0, n).remove();
			$(".guest").slice(1).remove();
			$(".relationship").slice(0, n).remove();
			$(".relationship").slice(1).remove();
		},
		animate : function(i, left, top) {
			$(i).animate({
				left : left,
				top : top
			}, 500);
		},
		changeClass : function() {
			var that = this;
			$(".guest").addClass("abcdef").removeClass("guest");
			$(".host").addClass("guest").removeClass("host").attr("angle",
					that.angle);
			$(".abcdef").addClass("host").removeClass("abcdef").attr("angle",
					null);
		}
	};
	$(document).ready(function() {
		//relation.init(relationName, 0);		
		$.ajax({
			type : "post",
			url  : "/adminTool/AdministratorTool/getRalation.do",
			data : generatePara('',''),
			timeout: 5000,
			dataType:'json',
			success : function(resultData, status, xhr) {
				result = resultData;
				alert(resultData);
			},
			error : function(xhr, status, error) {},
			async:false
		});
	});
</script>
</head>
<body>
	<div id="box"></div>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值