蚁群算法代码就java 蚁群算法代码含界面( 六 )


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){
str='div class="ant" style="left:'+X+';top:'+Y+';"/div';
document.body.appendChild(life=document.createElement(str));
}
obj=life;
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;
//遇到食物原路返回并减小角度变化
distance=(X-xf)*(X-xf)+(Y-yf)*(Y-yf);
if(distanceR_2){
R+=0.5;
r/=2;
v*=2;
}
distance=(X-xi0)*(X-xi0)+(Y-yi0)*(Y-yi0);
if(distanceR_2){
R+=0.5;
r/=2;
v*=2;
}
/*----------------------------------
/*================================*/
//碰撞边界反弹
R=(Xx0||XxM)?-R:R;
R=(Yy0||YyM)?0.5-R:R;
X=x[k]+Math.sin(P2*R)*V;
Y=y[k]+Math.cos(P2*R)*V;
/*================================*/
//溢出边界重生(类似流星效果)
if(Xx0||XxM||Yy0||YyM){
X=xi0;
Y=yi0;
}
/*----------------------------------
/*================================*/
//边界限制
x[k]=X=(Xx0)?x0:(XxM)?xM-2:X;
y[k]=Y=(Yy0)?y0:(YyM)?yM-2:Y;
r[k]=R1?R-1:R0?R+1:R;
v[k]=V=(Vv0)?v0:((VvM)?V:vM);
/*================================*/
obj.style.left=x[k]=X;
obj.style.top=y[k]=Y;
setTimeout('Move('+(i+Unit)%Total+')',Unit);
}
}
//根据浏览器自动加载动画
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"
div id="food" class="food"/div
div id="nest" class="nest"/div
/body
/html
关于蚁群算法代码就java和蚁群算法代码含界面的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读