canvas笔记-画一片星空

   日期:2020-06-02     浏览:93    评论:0    
核心提示:程序运行截图如下:源码如下: Title

程序运行截图如下:

源码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<canvas id="canvas" style="border:1px solid #aaa;display:block;margin:50px auto;">
    当前浏览器不支持Canvas,请更换浏览器后再试
</canvas>

<script>
    window.onload = function() {

        let canvas = document.getElementById("canvas");
        canvas.width = 800;
        canvas.height = 800;
        let context = canvas.getContext("2d");

        context.fillStyle = "black";
        context.fillRect(0, 0, canvas.width, canvas.height);

        for(let i = 0; i < 200; i++){

            let r = Math.random() * 10 + 10;
            let x = Math.random() * canvas.width;
            let y = Math.random() * canvas.height;
            let a = Math.random() * 360;
            drawStar(context, x, y, r, r / 2.0, a);
        }
    }

    function drawStar(cxt, x, y, outerR, innerR, rot){

        cxt.beginPath();
        for(let i = 0; i < 5; i++){

            cxt.lineTo(Math.cos((18 + i * 72 - rot) / 180 * Math.PI) * outerR + x,
                -Math.sin((18 + i * 72- rot) / 180 * Math.PI) * outerR + y);

            cxt.lineTo(Math.cos((54 + i * 72 - rot) / 180 * Math.PI) * innerR + x,
                -Math.sin((54 + i * 72 - rot) / 180 * Math.PI) * innerR + y);
        }

        cxt.closePath();

        cxt.fillStyle = "#fb3";
        cxt.strokeStyle = "#fd5";
        cxt.lineWidth = 3;
        cxt.lineJoin = "round";

        cxt.fill();
        cxt.stroke();
    }

</script>

</body>
</html>

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服