不知道哪里不对,出不来效果

来源:2-2 绘制直线、多边形和七巧板

成长前端初学者

2016-10-15 15:37

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<canvas id="myCanvas" style="border:1px solid #222;display:block;margin:50px auto;">您的浏览器不知此canvas</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:"#67beef"},

        {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:"#f9f5la"},

        {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("myCanvas");

 

        canvas.width=800;

        canvas.height=800;

 

        var context=canvas.getContext("2d");

        for(var i=0;i<tangram.length;i++)

            draw(tangram[i],context);

        }

        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();

             

            cxt.strokeStyle="black";

            cxt.lineWidth=3;

            cxt.stroke();

 

        }

    

</script>

</body>

</html>


写回答 关注

3回答

  • 慕粉4169398
    2016-10-15 16:50:18
    已采纳

        for(var i=1;i<piece.p.length,i++) 这行敲错了,i++钱的,改成分号就好了

    慕粉4169...

    前的。

    2016-10-15 16:51:08

    共 1 条回复 >

  • 轉身淚
    2016-10-20 11:58:04

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8" />

    <title></title>

    </head>

    <body>

    <canvas id="mycanvas" style="border:1px solid #222;display:block;margin:50px auto;">您的浏览器不知此canvas</canvas>

    <script type="text/javascript">

    var tar=[

            {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:"#67beef"},

            {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:"#f9f5la"},

            {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('mycanvas');

    canvas.width=800;

    canvas.height=800;

    var context=canvas.getContext('2d');

    //使用context绘制

    for (var i=0;i<tar.length;i++){

    draw(tar[i],context);

    }

    }

    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();

    }

    </script>

    </body>

    </html>

    不知道哪里出错了,一直显示不起

  • 成长前端初学者
    2016-10-15 17:00:30

    谢谢,找半天没找到


炫丽的倒计时效果Canvas绘图与动画基础

学习HTML5中最激动人心的技术Canvas,彻底释放自己的创造力

96746 学习 · 1000 问题

查看课程

相似问题