首頁 > web前端 > H5教程 > 詳解透過HTML5 Canvas實現圖片的平移及旋轉變化的方法_html5教學技巧

詳解透過HTML5 Canvas實現圖片的平移及旋轉變化的方法_html5教學技巧

WBOY
發布: 2016-05-16 15:45:25
原創
2832 人瀏覽過

平移變換translate()
平移變換,故名思議,就是一般的圖形位移。例如這裡我想將位於(100,100)的矩形平移至(200,200)點。那我只要在繪製矩形之前加上context.translate(100,100)即可。

這裡的translate()只傳入兩個參數,其實就是新畫布座標係原點的座標。下面結合程式碼來看看效果。

XML/HTML Code複製內容到剪貼簿
  1. html>  
  2. html lang="zh" >  
  3. >  
  4.      字符集 字符集 字符集
  5.  
  6. 字符集 字符集 字符集 字符集>  
  7.     標題>平移變身
  8. >
  9.   
  10.     
  11. 樣式>           正文 { 背景: url("./images/bg3.jpg") 重複; }   
  12.         #canvas { 邊框: 1px solid #aaaaaa; 顯示:區塊; 邊距:50px 自動; }      樣式>
  13.   
  14. >
  15.    身體>  
  16. div id=id=id=id=
  17. id=id=id=id=id> ">       畫布 id="畫布" >           你的瀏覽器居然不支援Canvas? !趕緊換一個吧! !  
  18.     畫布> 
  19. div>  
  20.   
  21. 腳本>  
  22.     
  23. window.onload = 函數(){🎜>函數(){  >
  24.         var 畫布 =         canvas.width
  25.  = 
  26. 800 = 800 =          canvas.height = 
  27.         var 情境 = canvas        
  28. context.fillStyle =          context.fillRect(0,0,800,600);      
  29.         context.fillStyle = "#00AAAAAAA         context.fillRect(100,100,200,100);   
  30.   
  31.         
  32. context.fillStyle =          context.translate(100,100);            context.fillRect(100,100,200,100);   
  33.   
  34.     };   
  35. 腳本>  
  36. 身體
  37. >  
  38. html>  
  39. 運行結果: 這裡的藍色擬合,是原來的位置,然後呼叫translate()方法,將預估非線性至(200,200),即紅色擬合的位置。我們來用一張圖看看,它是怎麼退出now直播帳號。實作平移變換的。 其實,其實這裡的平移變換外觀就是在平移座標系,而對translate()建立的參數,實質就是新座標系相對於舊座標系的原點。這使得我們依然在(100, 100)膚色的膚色,在平移座標系之後,變到了(200,200)處。 注意使用狀態保存:
  40. 其實這裡有個坑,我們想如果把曲線平移至(300,300)怎麼辦呢?也許我們會想,直接呼叫context.translate(200,200)就可以了。好,我們看看效果。
  41. JavaScript 程式碼 將內容複製到剪切板
    1.   
    2. "zh">   
    3.   
    4.     "UTF-8">   
    5.     平移变换   
    6.        
    7.   
    8.   
    9. "canvas-warp">   
    10.     "canvas">   
    11.         你的浏览器居然不支持Canvas?!赶快换一个吧!!   
    12.        
      
  42.   
  43.   
  44.     window.onload = 函數(){   
  45.         var canvas = document.getElementById("   
  46.         canvas.width = 800;   
  47.         canvas.height = 600;   
  48.         
  49. var context = canvas.getContext("2d"            context.fillStyle = 
  50. "#FFF";            context.fillRect(0,0,800,600);   
  51.   
  52.         context.fillStyle = 
  53. "#00AAAA";            context.fillRect(100,100,200,100);   
  54.   
  55.         context.fillStyle = 
  56. 「紅色」;            context.translate(100,100);   
  57.         context.fillRect(100,100,200,100);   
  58.   
  59.         context.fillStyle = 
  60. "綠色";            context.translate(200,200);   
  61.         context.fillRect(100,100,200,100);   
  62.   
  63.     };   
  64. 腳本>   
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板