canvas繪制七巧板
更新時間:2017年02月03日 15:07:32 作者:極客小兵
本文主要分享了canvas繪制七巧板的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
效果如下所示:
代碼分享:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Canvas七巧板</title> </head> <body> <canvas id="canvas" style=" border: 1px solid #aaa;display:block;margin:50px auto;"></canvas> <script type="text/javascript"> var tangram = [ {p:[{x:0,y:0},{x:800,y:0},{x:400,y:400}],color:'#caff67'}, {p:[{x:0,y:0},{x:400,y:400},{x:0,y:800}],color:'#67becf'}, {p:[{x:800,y:0},{x:800,y:400},{x:600,y:600},{x:600,y:200}],color:'#ef3d61'}, {p:[{x:600,y:200},{x:600,y:600},{x:400,y:400}],color:'#f9f51a'}, {p:[{x:400,y:400},{x:600,y:600},{x:400,y:800},{x:200,y:600}],color:'#a594c0'}, {p:[{x:200,y:600},{x:400,y:800},{x:0,y:800}],color:'#fa8ecc'}, {p:[{x:800,y:400},{x:800,y:800},{x:400,y:800}],color:'#f6ca29'} ] // 定義一個存放繪制路徑和顏色的數(shù)組 window.onload=function (){ var canvas=document.getElementById('canvas'); // 獲取canvas canvas.width = 800; canvas.height = 800; // 定義畫布的寬高 var context=canvas.getContext('2d'); // 創(chuàng)建畫布 for( var i=0; i<tangram.length; i++){ draw(tangram[i],context); // 遍歷數(shù)組tangram執(zhí)行函數(shù)draw } // draw這個函數(shù) function draw(piece,cxt){ cxt.beginPath(); // 開始路徑的創(chuàng)建 cxt.moveTo( piece.p[0].x , piece.p[0].y ); // 從這個坐標(biāo)開始 for( var i=1; i<piece.p.length; i++) // 遍歷數(shù)組中的p屬性 cxt.lineTo(piece.p[i].x , piece.p[i].y); // 畫路徑到這個坐標(biāo) cxt.closePath(); // 關(guān)閉這條打開的路徑 cxt.fillStyle = piece.color; cxt.fill(); // 給繪制的形狀填充顏色 } } </script> </body> </html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
js中?new?Date().getTime()得到的是毫秒數(shù)時間戳
今天在寫一個函數(shù)的時候需要用的一個時間戳方便調(diào)用不同的隨機(jī)數(shù)?那么時間戳就是比較好的方式,主要怕瀏覽器緩存數(shù)據(jù),下面就為大家簡單介紹一下2023-07-07前端實現(xiàn)監(jiān)控SDK的實戰(zhàn)指南
本文討論了前端監(jiān)控和數(shù)據(jù)統(tǒng)計的設(shè)計思路,包括錯誤監(jiān)控、用戶行為日志、PV/UV統(tǒng)計等方面,介紹了數(shù)據(jù)采集、日志上報、日志查詢的流程,以及監(jiān)控錯誤的類型和用戶埋點統(tǒng)計的手段,同時提到了PV和UV的統(tǒng)計方法,需要的朋友可以參考下2024-10-10javascript實現(xiàn)左右緩動動畫函數(shù)
這篇文章主要為大家詳細(xì)介紹了javascript實現(xiàn)左右緩動動畫函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-11-11JavaScript?映射器?array.flatMap()
這篇文章主要介紹了JavaScript?映射器?array.flatMap(),array.flatMap()是一個映射函數(shù),它接收一個數(shù)組和一個映射函數(shù),然后返回一個新的映射數(shù)組,下面進(jìn)入文章了解具體內(nèi)容2022-02-02實現(xiàn)png圖片和png背景透明(支持多瀏覽器)的方法
Firefox和Opera對PNG的支持非常的好,都是IE卻無視PNG圖片這一特性的“存在”,雖然IE7已經(jīng)支持都是IE6還是不行。2009-09-09JavaScript 另類遍歷數(shù)組實現(xiàn)代碼
JavaScript 另類遍歷數(shù)組實現(xiàn)代碼,大家可以看下。2009-10-10