以下是 html5 canvas绘制七巧板特效代码 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>html5 canvas绘制七巧板特效</title>
</head>
<body>
<div style="margin:0 auto;width:600px; height:auto;text-align: center;">
<h2>html5 canvas绘制七巧板特效</h2>
<canvas id="mycanvas" width="600" height="600" style="display:block;margin:50px auto"></canvas>
</div>
<script>
var c=document.getElementById("mycanvas");
var ctx= c.getContext("2d");
// 第一个三角形
// 开始绘制
ctx.beginPath();
// 绘制的基点
ctx.moveTo(0,0);
// 绘制从前一点到这点的直线
ctx.lineTo(300,300);
ctx.lineTo(0,600);
ctx.closePath();//填充或闭合 需要先闭合路径才能画
// 空心三角形
// ctx.strokeStyle="#FF7900";
// ctx.stroke();
// 实心三角形
ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(300,300);
ctx.lineTo(0,600);
ctx.closePath();//填充或闭合 需要先闭合路径才能画
// 进行绘图处理
ctx.fillStyle = 'rgba(200,0,0,0.5)';
ctx.fill();
// 第二个三角形
ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(300,0);
ctx.lineTo(150,150);
ctx.closePath();
ctx.fillStyle="rgba(255,121,0,0.5)";
ctx.fill();
// 第三个三角形
ctx.beginPath();
ctx.moveTo(300,0);
ctx.lineTo(600,0);
ctx.lineTo(600,300);
ctx.closePath();
ctx.fillStyle="rgba(255,0,0,0.5)";
ctx.fill();
// 第四个三角形
ctx.beginPath();
ctx.moveTo(0,600);
ctx.lineTo(600,600);
ctx.lineTo(300,300);
ctx.closePath();
ctx.fillStyle="rgba(3,165,72,0.5)";
ctx.fill();
// 第五个三角形
ctx.beginPath();
ctx.moveTo(300,300);
ctx.lineTo(450,150);
ctx.lineTo(450,450);
ctx.closePath();
ctx.fillStyle="rgba(46,180,255,0.5)";
ctx.fill();
// 正方形
ctx.beginPath();
ctx.moveTo(300,0);
ctx.lineTo(450,150);
ctx.lineTo(300,300);
ctx.lineTo(150,150);
ctx.closePath();
ctx.fillStyle="rgba(255,245,0,0.5)";
ctx.fill();
// 平行四边形
ctx.beginPath();
ctx.moveTo(600,600);
ctx.lineTo(600,300);
ctx.lineTo(450,150);
ctx.lineTo(450,450);
ctx.closePath();
ctx.fillStyle="rgba(129,0,196,0.5)";
ctx.fill();
</script>
</body>
</html>