HTML5自学笔记[ 24 ]canvas绘图之星空草地

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6
 7     <style>
 8         body{ background:#fff;}
 9         div{ width:800px; height:600px; margin:0 auto;}
10         canvas{ background:#000;}
11     </style>
12     <script src="drawstars.js"></script>
13 </head>
14 <body>
15     <div>
16         <canvas id="canvas1" width="800" height="600"></canvas>
17     </div>
18 </body>
19 </html>
 1 window.onload = function(){
 2
 3     var cvs = document.getElementById(‘canvas1‘);
 4     var cxt = cvs.getContext(‘2d‘);
 5     var R;
 6
 7     var lineGrad = cxt.createRadialGradient(cvs.width/2,cvs.height,0,cvs.width/2,cvs.height,cvs.width);
 8     lineGrad.addColorStop(0,‘#191970‘);
 9     lineGrad.addColorStop(1,‘#000‘);
10     cxt.fillStyle = lineGrad;
11     cxt.fillRect(0,0,cvs.width,cvs.height);
12
13     //星星
14     for(var i=0;i<100;i++){
15         R = 2+5*Math.random();
16         drawStar(cxt,cvs.width*Math.random(),cvs.height*0.7*Math.random(),R,‘#FFFF00‘);
17     }
18
19     //月亮
20     drawMoon(cxt,600,100,40,3,30,‘#FFF68F‘)
21
22     //草地
23     cxt.save();
24
25     cxt.beginPath();
26     cxt.moveTo(0,400);
27     cxt.bezierCurveTo(200,300,500,500,800,450);
28     cxt.lineTo(800,600);
29     cxt.lineTo(0,800);
30     cxt.closePath();
31
32     cxt.fillStyle = ‘green‘;
33     cxt.fill();
34
35     cxt.restore();
36
37
38
39 }
40
41 function drawMoon(cxt,x,y,r,d,rot,fillColor){
42     cxt.save();
43
44     cxt.translate(x,y);
45     cxt.scale(r,r);
46     cxt.rotate(rot*Math.PI/180);
47
48     moonPath(cxt,d);
49
50     cxt.fillStyle = ‘yellow‘ || fillColor;
51
52     cxt.fill();
53
54     cxt.restore();
55 }
56
57 function moonPath(cxt,d){
58     cxt.beginPath();
59     cxt.arc(0,0,1,0.5*Math.PI,1.5*Math.PI,true);
60     cxt.moveTo(0,-1);
61     cxt.arcTo(d,0,0,1,Math.sqrt(1+d*d)/d);
62 }
63
64 function drawStar(cxt,x,y,R,fillColor){
65     cxt.save();
66
67
68     cxt.translate(x,y);
69     cxt.rotate(360*Math.random()*Math.PI/180);
70     cxt.scale(R,R);
71
72     starPath(cxt);
73
74     cxt.fillStyle = fillColor;
75
76     cxt.fill();
77     cxt.restore();
78
79
80
81 }
82 function starPath(cxt){
83     cxt.beginPath();
84     for(var i=0;i<5;i++){
85         cxt.lineTo(Math.cos((18+72*i)*Math.PI/180),-Math.sin((18+72*i)*Math.PI/180));
86         cxt.lineTo(Math.cos((54+72*i)*Math.PI/180)*0.5,-Math.sin((54+72*i)*Math.PI/180)*0.5);
87     }
88     cxt.closePath();
89 }

该实例来自慕课网的学习,感兴趣的朋友可以去学习一下哦~

时间: 2024-10-05 04:43:22

HTML5自学笔记[ 24 ]canvas绘图之星空草地的相关文章

HTML5自学笔记[ 21 ]canvas绘图实例之马赛克

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>马赛克</title> 6 <style> 7 body{background:#000;} 8 canvas{background: #fff; margin-left:500px;} 9 </style> 10

HTML5自学笔记[20 ]canvas绘图实例之绘制倒影

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>倒影</title> 6 <style> 7 body{background:#000;} 8 canvas{background: #fff; margin-left:500px;} 9 </style> 10

HTML5自学笔记[ 17 ]canvas绘图基础4

绘制图像: drawImage(oImg,x,y),oImg是一个Image对象,(x,y)为绘制起点,绘制的图像大小和源图大小一样. drawImage(oImg,x,y,w,h),后两个参数设置绘制后的图形大小. drawImage(oImg,x1,y1,w1,h1,x2,y2,w2,h2),该方法获取源图像的一部分进行绘制并且指定绘制起点和绘制后图像的大小,x1/y1/w1/h1表示选取源图上(x1,y1)点起宽w1高h1的部分,x2/y2/w2/h2表示将选取的部分绘制到画布(x2,y2

HTML5自学笔记[ 14 ]canvas绘图基础2

canvas绘制路径不仅可以绘制直线和多边形,还提供了绘制曲线的方法,利用这些方法可以画出多种曲线效果. 方法1:arc(x,y,r,起始弧度,结束弧度,绘制方向);其中(x,y)为圆心坐标,r为半径,弧度计算公式:deg*Math.PI/180,绘制方向默认为false表示顺时针绘制 ,设置为true时,逆时针绘制. 例1,顺时针绘制0-90°圆弧: 1 oContext.beginPath(); 2 3 oContext.arc(300,300,200,0,90*Math.PI/180,fa

HTML5自学笔记[ 15 ]canvas绘图基础6

关于线条的一些属性: lineCap,这个属性表示的是线条两端的样式,值有butt(默认)/round/square. lineJoin,这个属性表示线条相交的方式,值有miter(默认)/bevel/round: miterLimit,该属性指定默认情况下lineJoin采用miter方式的极限值:比如,在上面的例子中,将miterLimit设置为1,那么第一个图的两条线的相交方式就会自动转变为bevel.

Html5 Canvas笔记(2)-Canvas绘图

用Canvas API绘图,需要画图形的边线并设置内部区域填充,边线英文语法对应stroke,填充对应fill,在后面我们会频繁看到这2个英文单词的出现.Canvas API内置的形状绘图函数比较少,可以完成绘制矩形Rect.弧形Arc,也可以画贝塞尔曲线bezierCurver.quadraticCurve.下面我们一个一个的来说. 画线-Line 1 function drawScreen(){ 2 context.strokeStyle='black'; 3 context.lineWid

html5学习笔记:canvas

1.什么是canvas? 可以绘制图形的标签.一般用javascript来绘制. 2.创建一个画布 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 </head> 6 <body> 7 <canvas id="mycanvas" width="100" height="100"></

HTML5自学笔记[ 10 ]简单的购物车拖拽

用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>购物车拖拽</title> 6 7 <style> 8 *{ margin:0; padding:0;} 9 #proList{ overflow:hidden;} 10 #pro

HTML5学习笔记-使用canvas绘制图形

canvas标签是一个矩形区域,它包含两个属性,width和height,默认为300px和150px. 常用形式如下: <canvas id="mycanvas" width="400" height="200" style="border:1px solid #color;"> ...提示信息 </canvas> 也可写成形式如: <canvas id="canvas" w