完全符合能量守恒,胡克定理的JavaScript弹簧振子(超简洁版,超越第一版!)
上一版用的是物理思想,这次用的是数学思想,如果您下载过第一版的代码就能明显感到数学的强大!!!!! 
这里是弹簧的JS代码: 
复制代码 代码如下:
 
<script type="text/javascript"> 
/////////////////this spring begin///////////////////// 
var X=0.1//X轴增量 
var T=0;//X轴初位置 
var M=200; //原始振幅倍数 
var A=0.7;//振幅倍数衰减数 
var D='R';//运动方向 
var O=0;//元素 
var L=0;//位置 
var TI=30; 
var S=false; 
var HR=false; 
function R(){ 
HR=true; 
if(S) 
{ 
return; 
} 
O.style.left= L+(Math.sin(T))*M+"px";//获取弹簧运动速度 
T=T+X;//X轴增长 
M-=A;//单位时间衰减 
if(M<=0)//振幅为零 
{ 
S=true; 
return;//退出 
} 
setTimeout("R()",TI);//回调 
} 
///////////////////this spring over/////////////////////////// 
function I() 
{ 
if(HR){ 
return; 
} 
S=false; 
O=document.getElementById("div"); 
X=parseFloat(document.getElementById("X").value); 
M=parseFloat(document.getElementById("M").value); 
A=parseFloat(document.getElementById("A").value); 
TI=parseFloat(document.getElementById("TI").value); 
L=document.getElementById("div").offsetLeft; 
R(); 
} 
function TS() 
{ 
S=true; 
} 
function B() 
{ 
if(S) 
{ 
T=0 
HR=false; 
S=false; 
X=parseFloat(document.getElementById("X").value); 
M=parseFloat(document.getElementById("M").value); 
A=parseFloat(document.getElementById("A").value); 
document.getElementById("div").style.left=L+"px"; 
} 
} 
</script> 
这里是该网页中的HTML(没啥用,为了演示)
复制代码 代码如下:
 
<div> 
<input type="text" value="0.1" />X轴增量<br/><input type="text" value="200" />原始振幅倍数<br/> 
<input type="text" value="0.7" />振幅倍数衰减数<br/> 
<input type="text" value="30" />运行时间间隔(毫秒)<br/> 
<input type="button" value="停止"/>停止后请从新激活<br/><input type="button" value="从新激活"/> 
</div><div><div value="设置完后点我!"></div></div> 
这比上次的代码大有长进!100%原创!
转载
您可能感兴趣的文章:
