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

求解决困惑1111111

var tangram=[

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

{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}],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:200,y:600}],color:"#fa8ecc"},

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

];

window.onload=function(){

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

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

// context.moveTo(0,0);

// context.lineTo(100,100);

// context.strokeStyle="#000";

// context.stroke();

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=0;i<piece.length;i++){

cxt.lineTo(piece.p[i].x,piece.p[i].y);

}

cxt.closePath();


cxt.fillStyle=piece.color;

cxt.fill();

}

一模一样,为什么没有效果?

正在回答

3 回答

除此之外你的点也有问题,画出来的七巧板有缺失。

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

问题出在draw函数里面  把for(var i=0;i<piece.length;i++)改成for(var i=1;i<piece.p.length;i++)  就可以了  你要清楚这个循环循环的是 tangram数组里key值p的value 

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

Sunny_myj

帮了大忙了
2016-09-11 回复 有任何疑惑可以回复我~

for(var i=0;i<piece.length;i++){看看哪里不一样

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

举报

0/150
提交
取消
炫丽的倒计时效果Canvas绘图与动画基础
  • 参与学习       96568    人
  • 解答问题       999    个

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

进入课程

求解决困惑1111111

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