canvas繪制七巧板
更新時(shí)間:2017年02月03日 15:07:32 作者:極客小兵
本文主要分享了canvas繪制七巧板的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
效果如下所示:

代碼分享:
<!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'}
]
// 定義一個(gè)存放繪制路徑和顏色的數(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這個(gè)函數(shù)
function draw(piece,cxt){
cxt.beginPath();
// 開始路徑的創(chuàng)建
cxt.moveTo( piece.p[0].x , piece.p[0].y );
// 從這個(gè)坐標(biāo)開始
for( var i=1; i<piece.p.length; i++)
// 遍歷數(shù)組中的p屬性
cxt.lineTo(piece.p[i].x , piece.p[i].y);
// 畫路徑到這個(gè)坐標(biāo)
cxt.closePath();
// 關(guān)閉這條打開的路徑
cxt.fillStyle = piece.color;
cxt.fill();
// 給繪制的形狀填充顏色
}
}
</script>
</body>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
js中?new?Date().getTime()得到的是毫秒數(shù)時(shí)間戳
今天在寫一個(gè)函數(shù)的時(shí)候需要用的一個(gè)時(shí)間戳方便調(diào)用不同的隨機(jī)數(shù)?那么時(shí)間戳就是比較好的方式,主要怕瀏覽器緩存數(shù)據(jù),下面就為大家簡單介紹一下2023-07-07
前端實(shí)現(xiàn)監(jiān)控SDK的實(shí)戰(zhàn)指南
本文討論了前端監(jiān)控和數(shù)據(jù)統(tǒng)計(jì)的設(shè)計(jì)思路,包括錯誤監(jiān)控、用戶行為日志、PV/UV統(tǒng)計(jì)等方面,介紹了數(shù)據(jù)采集、日志上報(bào)、日志查詢的流程,以及監(jiān)控錯誤的類型和用戶埋點(diǎn)統(tǒng)計(jì)的手段,同時(shí)提到了PV和UV的統(tǒng)計(jì)方法,需要的朋友可以參考下2024-10-10
javascript實(shí)現(xiàn)左右緩動動畫函數(shù)
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)左右緩動動畫函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
JavaScript?映射器?array.flatMap()
這篇文章主要介紹了JavaScript?映射器?array.flatMap(),array.flatMap()是一個(gè)映射函數(shù),它接收一個(gè)數(shù)組和一個(gè)映射函數(shù),然后返回一個(gè)新的映射數(shù)組,下面進(jìn)入文章了解具體內(nèi)容2022-02-02
實(shí)現(xiàn)png圖片和png背景透明(支持多瀏覽器)的方法
Firefox和Opera對PNG的支持非常的好,都是IE卻無視PNG圖片這一特性的“存在”,雖然IE7已經(jīng)支持都是IE6還是不行。2009-09-09
JavaScript 另類遍歷數(shù)組實(shí)現(xiàn)代碼
JavaScript 另類遍歷數(shù)組實(shí)現(xiàn)代碼,大家可以看下。2009-10-10

