Html5 canvas画星空 比较基础

来源:互联网 发布:石家庄广电网络营业厅 编辑:程序博客网 时间:2024/05/17 09:41
<!DOCTYPE HTML><html style="padding:0;margin:0;"><head><title></title>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>    <style type="text/css">     html, body{        height:100%;        width:100%;    padding: 0;    margin: 0;    overflow:hidden;    }    #myCanvas{     background:black;     height:100%;     width:100%;     padding: 0;     margin: 0;    }    *{-webkit-tap-highlight-color: rgba(0,0,0,0);margin:0 auto;}    </style></head><body style="padding:0;margin:0;overflow-y:hidden"><canvas id="myCanvas" width="1000"  height="500" draggable="true"></canvas><script type="text/javascript">        function Star() {        _this = this;        _this.x = -1;        _this.y = -1;        _this.color = "#FFFF00";        _this.speed = 25;        _this.m = 0;        _this.n = 0;        _this.s = 20;//边长        //随机颜色        this.getColor = function () {            _this.r = Math.ceil(Math.random() * 255);            _this.g = Math.ceil(Math.random() * 255);            _this.b = Math.ceil(Math.random() * 255);            _this.color = "rgb(" + _this.r + "," + _this.g + "," + _this.b + ")";            return _this.color;        }        this.getSide = function () {            _this.s = Math.ceil(Math.random() *10+5);            return _this.s;        }        this.drawStar = function (cxt) {            _this.m = Math.ceil(Math.random() * 800 + 100);            _this.n = Math.ceil(Math.random() * 400 + 10);            var dig = Math.PI / 5 * 4;            _this.s = this.getSide();            _this.color = this.getColor();            cxt.beginPath();            cxt.fillStyle = _this.color;            for (var i = 0; i < 5; i++) {                _this.x = Math.sin(i * dig);                _this.y = Math.cos(i * dig);                cxt.lineTo(_this.m + _this.x * _this.s, _this.n + _this.y * _this.s);            }            //cxt.translate(_this.mx, _this.my);            //cxt.rotate(Math.PI / 8); //旋转            cxt.closePath();            cxt.fill();            cxt.save();        }        this.drawAllstar = function (max, cxt,height,width) {            cxt.clearRect(0, 0, height, width);            cxt.save();            for (var i = 0; i < max; i++) {                this.drawStar(cxt);            }            cxt.restore();        }        this.init = function (max, cxt, width, height) {            this.getSide();            //this.drawAllstar(max, cxt, height, width);        }    }    var canvas = document.getElementById('myCanvas');    var cxt = canvas.getContext('2d');    var stars = new Star();    setInterval(function () {        stars.drawAllstar(50, cxt, 1000, 800);    }, 2000);    </script></body></html>
原创粉丝点击