使用canvas怎么實現一個探照燈效果-創新互聯

這期內容當中小編將會給大家帶來有關使用canvas怎么實現一個探照燈效果,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創新互聯公司2013年開創至今,是專業互聯網技術服務公司,擁有項目成都網站設計、網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元廣德做網站,已為上家服務,為廣德各地企業和個人服務,聯系電話:028-86922220
</iframe>
<button id="btn">變換</button>
<button id="con">暫停</button>
<canvas id="canvas" width="400" height="290" style="border:1px solid black">當前瀏覽器不支持canvas,請更換瀏覽器后再試</canvas>
<script> btn.onclick = function(){history.go();}
con.onclick = function(){ if(this.innerHTML == '暫停'){ this.innerHTML = '恢復';
        clearInterval(oTimer);
    }else{ this.innerHTML = '暫停'; 
        oTimer = setInterval(fnInterval,50);
    }
} var canvas = document.getElementById('canvas'); //存儲畫布寬高
var H=290,W=400; //存儲探照燈
var ball = {}; //存儲照片
var IMG; //存儲照片地址
var URL = 'http://sandbox.runjs.cn/uploads/rs/26/ddzmgynp/chunfen.jpg'; function initial(){ if(canvas.getContext){ var cxt = canvas.getContext('2d'); var tempR = Math.floor(Math.random()*30+20); var tempX = Math.floor(Math.random()*(W-tempR) + tempR); var tempY = Math.floor(Math.random()*(H-tempR) + tempR)        
        ball = {
            x:tempX,
            y:tempY,
            r:tempR,
            stepX:Math.floor(Math.random() * 21 -10),
            stepY:Math.floor(Math.random() * 21 -10)
        };
        IMG = document.createElement('img');
        IMG.src=URL;
        IMG.onload = function(){
            cxt.drawImage(IMG,0,0);
      }//歡迎加入全棧開發交流圈一起學習交流:582735936
    ]//面向1-3年前端人員
  }   //幫助突破技術瓶頸,提升思維能力
        }   
    }    
} function update(){
    ball.x += ball.stepX;
    ball.y += ball.stepY; 
    bumpTest(ball);
} function bumpTest(ele){ //左側
    if(ele.x <= ele.r){
        ele.x = ele.r;
        ele.stepX = -ele.stepX;
    } //右側
    if(ele.x >= W - ele.r){
        ele.x = W - ele.r;
        ele.stepX = -ele.stepX;
    } //上側
    if(ele.y <= ele.r){
        ele.y = ele.r;
        ele.stepY = -ele.stepY;
    } //下側
    if(ele.y >= H - ele.r){
        ele.y = H - ele.r;
        ele.stepY = -ele.stepY;
    }
} function render(){ //重置畫布高度,達到清空畫布的效果
 canvas.height = H; if(canvas.getContext){ var cxt = canvas.getContext('2d');
        cxt.save(); //將畫布背景涂黑
 cxt.beginPath();
        cxt.fillStyle = '#000';
        cxt.fillRect(0,0,W,H); //渲染探照燈
 cxt.beginPath();
        cxt.arc(ball.x,ball.y,ball.r,0,2*Math.PI);
        cxt.fillStyle = '#000';
        cxt.fill(); 
        cxt.clip(); //由于使用了clip(),畫布背景圖片會出現在clip()區域內
 cxt.drawImage(IMG,0,0);
        cxt.restore();
      }//歡迎加入全棧開發交流圈一起學習交流:582735936
    ]//面向1-3年前端人員
  }   //幫助突破技術瓶頸,提升思維能力
    }

}
initial();
clearInterval(oTimer); function fnInterval(){ //更新運動狀態
 update(); //渲染
 render();    
} var oTimer = setInterval(fnInterval,50); 
</script>

上述就是小編為大家分享的使用canvas怎么實現一個探照燈效果了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

名稱欄目:使用canvas怎么實現一個探照燈效果-創新互聯
地址分享:http://m.kartarina.com/article48/cdssep.html

成都網站建設公司_創新互聯,為您提供App設計自適應網站網站導航動態網站網站內鏈微信公眾號

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 无码无需播放器在线观看| 无码无需播放器在线观看| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲精品无码永久在线观看你懂的 | 精品久久无码中文字幕| 久久久无码精品午夜| 亚洲精品无码久久久久| 无码av天天av天天爽| 亚洲AV综合色区无码二区爱AV| 精品无码成人网站久久久久久| 亚洲中文字幕久久精品无码APP| 亚洲av永久无码| 亚洲av无码潮喷在线观看| 国产精品无码一区二区三区毛片 | 国产成人年无码AV片在线观看| 无码日韩精品一区二区免费暖暖 | 亚洲AV无码专区国产乱码4SE| 国产在线无码制服丝袜无码| 亚洲午夜成人精品无码色欲| 久久午夜无码鲁丝片| 亚洲国产综合无码一区| 国产av永久精品无码| 国产莉萝无码AV在线播放| 日韩av无码一区二区三区| 亚洲精品无码av天堂| 久久久久久亚洲av无码蜜芽 | 91嫩草国产在线无码观看| 亚洲中文字幕无码中文字在线| HEYZO无码中文字幕人妻 | 无码日韩人妻AV一区二区三区| 亚洲AV无码无限在线观看不卡| 亚洲国产精品无码久久久秋霞2| 狠狠躁夜夜躁无码中文字幕| 日韩av无码中文无码电影| 精品无码专区亚洲| 国产乱人伦无无码视频试看| 性色AV一区二区三区无码| 色综合久久久无码中文字幕| 无翼乌工口肉肉无遮挡无码18| 亚洲国产成人精品无码久久久久久综合 | 日韩毛片无码永久免费看|