求解决困惑1111111

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

qq_秋忆_0

2016-09-01 16:18

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

  • 湛瞳
    2016-09-06 09:27:30

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

  • SummerWang3150009
    2016-09-02 14:19:32

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

    Sunny_...

    帮了大忙了

    2016-09-11 09:57:35

    共 1 条回复 >

  • rain_late
    2016-09-02 13:32:42

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

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

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

96746 学习 · 1000 问题

查看课程

相似问题