为了账号安全,请及时绑定邮箱和手机立即绑定

线条不对,颜色也不填充,求找bug

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

   <canvas id="canvas"style="display: block;margin: 0 auto;border: 1px solid #aaa;"></canvas>

   <script>

       var tangram=[

          {p:[{x:0,y:0},{x:0,y:800},{x:400,y:400}],color:"#caff67"},

          {p:[{x:0,y:0},{x:400,y:400},{x:800,y:0}],color:"#67becf"},

          {p:[{x:0,y:800},{x:400,y:800},{x:600,y:600},{x:200,y:600}],color:"#ef3d61"},

          {p:[{x:400,y:800},{x:800,y:800},{x:800,y:400}],color:"#f9f5la"},

          {p:[{x:400,y:400},{x:200,y:600},{x:600,y:600}],color:"#a594c0"},

          {p:[{x:400,y:400},{x:600,y:600},{x:800,y:400},{x:600,y:200}],color:"#fa8ecc"},

          {p:[{x:600,y:200},{x:800,y:400},{x:800,y:0}],color:"#f6ca29"}

       ]

       window.onload=function(){

           var canvas=document.getElementById("canvas");

           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 回答

cxt.closePath();这句去掉

0 回复 有任何疑惑可以回复我~
#1

zl135 提问者

非常感谢!
2016-11-29 回复 有任何疑惑可以回复我~
#2

拱猪的小白菜

我也遇到同样问题,为什么要去掉这句话啊
2017-01-23 回复 有任何疑惑可以回复我~

如果for后面大括号不去掉,那么就要把cxt.closePath();cxt.fill();这两句拿出来才行,但是为什么呢?

0 回复 有任何疑惑可以回复我~

把所有的for 后面的大括号去掉

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

线条不对,颜色也不填充,求找bug

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信