📄 div2.html
字号:
<!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=gb2312" />
<title>蚁群算法js版</title>
<style>
.point{
position:absolute;
background-color:#000000;
overflow:hidden;
width:2px;
height:2px;
}
</style>
<script type="text/JavaScript">
//============================
//系统参数初始化
//----------------------------
//生命体数量与轨迹长度
Unit=500;Path=1;
//生命体速度上下限
v0=2;vM=10;
//生命体加速度变化范围
Kr=0.1;Kv=0.1*(vM-v0);
//生命体运动范围
x0=0;xM=document.documentElement.clientWidth;
y0=0;yM=document.documentElement.clientHeight;
//生命体出生地(蚁巢)
xi0=(x0+xM)/2;yi0=(y0+yM)/2;
//============================
var r=new Array();
var v=new Array();
var dr=new Array();
var dv=new Array();
var x=new Array();
var y=new Array();
var life=new Array();
//单击暂停
window.status='pause';
var Time0;
function document.onclick(){
if(window.status=='pause'){
window.status=0;
Time0=(new Date()).getTime();
init(0);
}else{
window.status='pause';
}
}
//边界随窗口大小调整
function window.onresize(){
xM=document.documentElement.clientWidth;
yM=document.documentElement.clientHeight;
xi0=(x0+xM)/2;
yi0=(y0+yM)/2;
}
//初始化函数
function init(i){
if(window.status!='pause'&&i<Unit){
if(!life[i]){
life[i]='<div class="point" style="left:'+xi0+';top:'+yi0+';"></div>';
// str='<div class="point" style="left:'+xi0+';top:'+yi0+';"></div>';
// document.body.appendChild(life[i]=document.createElement(str));
x[i]=xi0;
y[i]=yi0;
r[i]=Math.random();
v[i]=1/Math.random();
dr[i]=Kr*Math.random();
dv[i]=Kv*Math.random();
}
Move(i);
window.status=i+1;
setTimeout('init('+(i+1)+')',0/*i*/);
}else{
alert('无div生成耗时:'+((new Date()).getTime()-Time0)+'ms');
Time0=(new Date()).getTime();
}
}
//运动函数
Total=Unit*Path;
P2=2*Math.PI;
function Move(i){
if(window.status!='pause'){
k=i%Unit;
X=x[k];
Y=y[k];
R=r[k];
V=v[k];
if(!life[i]){
life[i]='<div class="point" style="left:'+X+';top:'+Y+';"></div>';
// str='<div class="point" style="left:'+X+';top:'+Y+';"></div>';
// document.body.appendChild(life[i]=document.createElement(str));
}
obj=life[i];
R+=dr[k]*(2*Math.random()-1);
V+=dv[k]*(2*Math.random()-1);
X+=Math.sin(P2*R)*V;
Y+=Math.cos(P2*R)*V;
//碰撞边界反弹
R=(X<x0||X>xM)?-R:R;
R=(Y<y0||Y>yM)?0.5-R:R;
X=x[k]+Math.sin(P2*R)*V;
Y=y[k]+Math.cos(P2*R)*V;
/*================================*/
//溢出边界重生(类似流星效果)
if(X<x0||X>xM||Y<y0||Y>yM){
X=xi0;
Y=yi0;
}
/*----------------------------------
/*================================*/
r[k]=R>1?R-1:R<0?R+1:R;
v[k]=V=(V<v0)?v0:((V<vM)?V:vM);
//obj.style.left=x[k]=X;
//obj.style.top=y[k]=Y;
setTimeout('Move('+(i+Unit)%Total+')',/*Unit*/45);
}
}
//根据浏览器自动加载动画
switch(navigator.appName.toLowerCase()){
case "netscape":
window.addEventListener("load",document.onclick,false);
break;
case "microsoft internet explorer":
default:
window.attachEvent("onload",document.onclick);
break;
}
</script>
</head>
<body scroll="no">
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -