canvas-tangram.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <canvas id="canvas" style="border: 1px #ddd solid;display: block;margin:0 auto"></canvas>
    <script>
        var tangram = [
            {p:[{x:0,y:0},{x:800,y:0},{x:400,y:400}],color:"red"},
            {p:[{x:0,y:0},{x:400,y:400},{x:0,y:800}],color:"blue"},
            {p:[{x:800,y:0},{x:800,y:400},{x:600,y:600},{x:600,y:200}],color:"yellow"},
            {p:[{x:600,y:200},{x:600,y:600},{x:400,y:400}],color:"green"},
            {p:[{x:400,y:400},{x:600,y:600},{x:400,y:800},{x:200,y:600}],color:"pink"},
            {p:[{x:200,y:600},{x:0,y:800},{x:400,y:800}],color:"orange"},
            {p:[{x:800,y:400},{x:800,y:800},{x:400,y:800}],color:"purple"}
        ];

        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++){
                cxt.lineTo(piece.p[i].x , piece.p[i].y);
            }
            cxt.closePath();
            cxt.fillStyle = piece.color;
            cxt.fill();
        }

        window.onload = function(){
            var canvas = document.getElementById(‘canvas‘);

            canvas.width = 800;
            canvas.height = 800;

            if(canvas.getContext(‘2d‘)){
                var context = canvas.getContext(‘2d‘);

                for(var i=0;i<tangram.length;i++){
                    draw(tangram[i],context)
                }

            }else{
                alert(‘当前游览器不支持Canvas,请更换游览器后再试!‘);
            }
        }
    </script>
</body>
<script>
/*
  总结 绘制七巧板

  主要运用的js的for循环的巧妙

  1.定义路径 trangram

  2.第一层for,循环trangram[i]

  3.函数draw,第二层for,循环取出绘制路径 trangram.p[i].x
*/
</script>
</html>
时间: 2024-05-27 23:42:56

canvas-tangram.html的相关文章

[学习笔记]HTML5之canvas

虐了一下午的canvas 先撸了一个七巧板 <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <canvas id="canvas" style="border:1px solid #ccc; display:block; mar

canvas的基础使用。

目录: 创建canvas. 绘制直线.多边形和七巧板. 绘制弧和圆. (有些图过于宽,被挤压了.可以去相册[canvas用到的图.]看原图.) 创建canvas. HTML5的新标签<canvas></canvas> 在使用时会添加id,通过id来获取canvas元素来进行绘图操作. <canvas id="canvas"></canvas> 可以添加样式.在不指定宽高的时候,默认是300px*150px. <canvas id=&

canvas,绘制七巧板

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; min-height: 35.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; color: #d74200 } p.p4 {

canvas——七巧板

<canvas id="canvas" style="border:1px solid #aaa;display: block;margin: auto;"></canvas> <script type="text/javascript"> var tangram = [ {p:[{x:0,y:0},{x:300,y:300},{x:0,y:600}],color:"#caff67"}, {

canvas基础入门(一)绘制线条、三角形、七巧板

复杂的内容都是有简单的线条结合而成的,想要绘制出复杂好看的内容先从画直线开始 canvas绘制直线先认识几个函数 beginPath():开始一条路径,或重置当前的路径 moveTo(x,y):用于规定直线的起点坐标 lineTo(x,y):用于规定直线的终点坐标 closePath():方法创建从当前点到开始点的路径 stroke():方法会实际地绘制出通过 moveTo() 和 lineTo() 方法定义的路径.默认颜色是黑色 利用上面的函数就可以简单的画出直线了 代码 <canvas id

Canvas绘图与动画详解

1.canvas 绘制       当canvas不设置大小时,默认宽300,高150:       注意:不建议使用css 设置大小,可以利用行内样式 width="",height=""去设置(无单位):                 canvas 是基于状态进行绘制的:      举例说明:            上述代码显示结果为全部均为黑色:       如何更改? 在绘制前context.beginPath(),结束后 context.closePat

canvas的基础入门

canvas是定义在浏览器上的画布.它不仅仅是一个标签元素更是一个编程工具是一套编程的接口.利用它可以开发出很多东西,比如动画,游戏,动态的图表等富有变现力和感染力的应用.还可以开发出绚丽的3D动态效果.接下来我们一起学习! 一. 创建canvas 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta na

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

移动端canvas抗锯齿

未抗锯齿效果图: 加入抗锯齿代码效果: var Game = function(){ var H = document.documentElement.clientHeight || document.body.clientHeight; var W = document.documentElement.clientWidth || document.body.clientWidth; this.canvas = document.getElementById("canvas"); t

Canvas

仿百度贴吧客户端 loading 小球 前言 几天前在简书上看到在一篇文章<Android仿百度贴吧客户端Loading小球>,看了一下作者,他写了两个好玩的 demo,效果图如下: 今天趁着周末有空,用 H5 的 Canvas 仿了一下.这篇文章只实现第一个效果图.这是我实现的效果: 实现原理 实现原理是参考简书的那篇文章,这里不再复述.现在我们来一步一步实现这样的效果. 第零步:画一个圆 源码如下: <!DOCTYPE html> <html> <head&g