JavaScript 運動(加速度運動,彈性運動)


加速度運動(加速度不變的加速運動)

function addSpeed(dom){
            var a = 5;
            timer = setInterval(function(){
                speed =  speed + a;
                dom.style.left = dom.offsetLeft + speed + 'px';
            },30)
        }

 

彈性運動

當一根彈簧鏈接小球彈性運動時過程

  1. (釘子左側),小球運動方向向右,受到的力向右,加速度向右,做加速度減小的加速運動
  2. 當向右時(釘子右側),小球運動方向向右,收到的力向左,加速度向左,做加速度增加的減速運動
  3. 當向左時(釘子右側),小球運動方向向左,收到的力向左,加速度向左,做加速度減小的加速運動
  4. 當向左時(釘子左側),小球運動方向向左,收到的力向右,加速度向右,做加速度增大的減速運動

也就是說當小球距離釘子(目標位置)越遠,受到的加速度越大,隨着距離不斷減小,加速度也不斷減小。在實現代碼時通過判斷物體距離目標點的距離來控制加速度的大小,也就是說我們可以使用a = target - dom.offsetleft;由於此時加速度太大可以除以一個數。

function moveStart(dom, targetPosition) {
            clearInterval(timer);
            var speed = 0; var a = 3;
            timer = setInterval(function () {
                a = (targetPosition - dom.offsetLeft) / 5;
                speed = speed + a;
                speed = speed * 0.8;if (Math.abs(speed) < 1 && Math.abs(targetPosition - dom.offsetLeft) <= 1) {
                    clearInterval(timer);
                    dom.style.left = targetPosition + "px";
                } else {
                    dom.style.left = dom.offsetLeft + speed + "px";
                }
            }, 30)
        }

 

 

 

 

而在真生的彈性運動中,由於受到摩擦力以及空氣阻力,是有速度的能量損耗的。我們讓摩擦力作用在速度的身上例如:speed * u;當speed減小到0並且距離目標位置小於1是,停止定時器。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM