完全符合能量守恆,胡克定理的JavaScript彈簧振子(超簡潔版,超越第一版!)

完全符合能量守恆,胡克定理的JavaScript彈簧振子(超簡潔版,超越第一版!)

 X軸增量
原始振幅倍數
振幅倍數衰減數
運行時間間隔(毫秒)
停止後請從新激活
運行後請重新激活!
設置完後點我!

上一版用的是物理思想,這次用的是數學思想,如果您下載過第一版的代碼就能明顯感到數學的強大!!!!!QQ羣:50352735
這裏是彈簧的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 id="P" style="width:500px;height:400px;">
<input style="width:50px"  type="text" id="X"  value="0.1" />X軸增量<br/><input style="width:50px"  type="text" id="M"  value="200" />原始振幅倍數<br/>
<input style="width:50px"  type="text" id="A"  value="0.7" />振幅倍數衰減數<br/>
<input style="width:50px"  type="text" id="TI"  value="30" />運行時間間隔(毫秒)<br/>
<input style="width:80px" type="button" onclick="TS()"   value="停止"/>停止後請從新激活<br/><input style="width:80px" type="button" onclick="B()"   value="從新激活"/>
</div><div style=" position:absolute;"><div id="div"  onclick="I()" value="設置完後點我!" style="position:absolute; top:-264px; left:211px; width:50px; height:50px; background-color:#FF0;"></div></div>
這比上次的代碼大有長進!100%原創!所以:轉載請說明出處:
http://www.cnblogs.com/NONE/archive/2009/10/25/JavaScriptTrueBornSpring.html
分類: JavaScript
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章