一片黑色,不知道什么问题了!

来源:4-1 画一片星空

落木栀子

2019-06-28 10:29

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

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

var ctx = canvas.getContext("2d");
ctx.fillStyle = "f00";
ctx.fillRect(0,0,canvas.width,canvas.height);

for(var i = 0; i < 200;i++) {
    var r = Math.random() * 10 + 10;
    var x = Math.random() * canvas.width;
    var y = Math.random() * canvas.height;
    var a = Math.random() * 360;
    drawStar(ctx,x,y,r,r/2.0,a);
}
ctx.lineCap = "butt";  //round square
//ctx.lineJoin = "bevel";  // 平角效果

//ctx.lineJoin = "round";  // 圆角效果

ctx.lineJoin = "miter";  // 尖角限制
ctx.miterLimit = 20;

//drawStar(ctx,20,50,400,400,0);

function  drawStar(cx,r,R,x,y,rot) {
    cx.beginPath();

    for(var i = 0; i < 5; i++) {
        cx.lineTo(Math.cos((18 + i*72 - rot)/180 * Math.PI) * R + x,
            -Math.sin((18 + i*72 - rot)/180 * Math.PI) * R + y
        );
        cx.lineTo(Math.cos((54 + i*72 - rot)/180 * Math.PI) * r + x,
            -Math.sin((54 + i*72 - rot)/180 * Math.PI) * r + y
        )
    }
    cx.closePath();
    cx.fillStyle = "fb3";
    cx.strokeStyle = "fd5";
    cx.lineWidth = 3;
    cx.fill();
    cx.stroke();
}


写回答 关注

2回答

  • 爪哇_2015
    2019-07-01 10:32:36
    已采纳
    1. 颜色十六进制:#f00或者#ff0000(你缺了#);

    2. 你的drawStar函数的实参和形参不对应啊(粗心)。

  • 落木栀子
    2019-07-01 15:12:32

    感谢,确实粗心了!

Canvas绘图详解

Canvas系列教程第二课,详解Canvas各接口,让同学彻底掌握Canvas绘图

72881 学习 · 422 问题

查看课程

相似问题