HTML5 Canvas 移動

來源:互聯網
上載者:User

標籤:

Context對象可以通過調用translate()方法來移動Canvas畫布中座標原點的位置。translate()方法的原型如下:

void translate(x, y);

用於將該Context對象所對應的Canvas的(0, 0)點移動到(x, y)點,並將其作為新的(0, 0)點。通過實驗表明,translate()方法是通過把當前(0, 0)點設定為(-x, -y)點來實現這種移動的,並且改變後座標原點將會影響由該Canvas對象產生的其它Context對象。但是,與Canvas中其它操縱映像的方法一樣,translate()也只會影響移動後繪製的圖形,對已經繪製到畫布中的圖形無效。

下面的樣本展示了移動的效果:

 

[html] view plaincopy 
  1. <!DOCTYPE HTML>  
  2. <html>  
  3. <body>  
  4. <canvas id="canvas" width="600"height="400">      
  5.          <p>Your browserdoes not support the canvas element!</p>      
  6. </canvas>      
  7.        
  8. <script type="text/javascript">      
  9.     var canvas =document.getElementById("canvas");      
  10.     var context2D =canvas.getContext("2d");   
  11.     var pic = new Image();   
  12.     pic.src ="milaoshu.jpg";  //注意目錄結構,這裡是把圖片和html放在一個目錄的  
  13.       
  14.     //注意下面方法中畫筆狀態的保護,這在很多情況下都會使用到  
  15.     function draw(){  
  16.         context2D.clearRect(0,0,600,400);  
  17.         context2D.save();//儲存畫筆狀態  
  18.         context2D.translate(600/2*Math.random(), 400/2*Math.random());//開始移動畫筆  
  19.         context2D.drawImage(pic,0, 0);  
  20.         context2D.restore();//繪製結束以後,恢複畫筆狀態  
  21.     }          
  22.        
  23.     setInterval(draw, 1000);  
  24.        
  25. </script>      
  26. </body>  
  27. </html>  

HTML5 Canvas 移動

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.