效果如下所示:

代碼分享:
<!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'} ]// 定義一個存放繪制路徑和顏色的數組 window.onload=function (){ var canvas=document.getElementById('canvas');// 獲取canvas canvas.width = 800; canvas.height = 800;// 定義畫布的寬高 var context=canvas.getContext('2d');// 創建畫布 for( var i=0; i<tangram.length; i++){ draw(tangram[i],context);// 遍歷數組tangram執行函數draw }// draw這個函數 function draw(piece,cxt){ cxt.beginPath();// 開始路徑的創建 cxt.moveTo( piece.p[0].x , piece.p[0].y );// 從這個坐標開始 for( var i=1; i<piece.p.length; i++)// 遍歷數組中的p屬性 cxt.lineTo(piece.p[i].x , piece.p[i].y);// 畫路徑到這個坐標 cxt.closePath();// 關閉這條打開的路徑 cxt.fillStyle = piece.color; cxt.fill();// 給繪制的形狀填充顏色 } } </script></body></html>以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!
新聞熱點
疑難解答