canvas之太阳系效果

星球 变量名 公转周期 光色 暗色
水星 Mercury 87.70 #a69697 #5c3e40
金星 Venus 224.701.70 #c4bbac #1f1315
地球 Earth 365.2422 #78b1e8 #050c12
火星 Mars 686.98 #cec9b6 #76422d
木星 Jupiter 4332.589 #c0a48e #322
土星 Saturn 10759.95 #f7f9e3 #5c4553
天王星 Uranus 30799.095 #a7e115 #19243a
海王星 Neptune 60152.95 #0661b2 #1E3b73
1 <canvas id="canvas" width="1000" height="1000" style="background-color: #000;"></canvas>
 1     var canvas=document.getElementById("canvas");
 2     var cxt=canvas.getContext("2d");
 3
 4     function DrawTrack(){
 5         for(var i=0;i<8;i++){
 6             cxt.beginPath();
 7             cxt.arc(500,500,(i+1)*50,0,360,false);
 8             cxt.closePath();
 9             cxt.strokeStyle="#fff";
10             cxt.stroke();
11         }
12     }
13     function DrawStart(x,y,radius,cycle,sColor,eColor){
14         //画出星球需要哪些属性
15
16         //星球的坐标点
17         this.x=x;
18         this.y=y;
19         //星球的半径
20         this.radius=radius;
21         //星球的颜色(开始色,结束色)
22         this.sColor=sColor;
23         this.eColor=eColor;
24         //创建一个渐变色空对象
25         this.color=null;
26         this.time=0;
27         //公共周期
28         this.cycle=cycle;
29         this.draw=function(){
30             cxt.save();
31             cxt.translate(500,500);
32             //设置旋转角度
33             cxt.rotate(this.time*360/this.cycle*Math.PI/180);
34             cxt.beginPath();
35             cxt.arc(this.x,this.y,this.radius,0,360,false);
36             cxt.closePath();
37             this.color=cxt.createRadialGradient(this.x,this.y,0,this.x,this.y,this.radius);
38             this.color.addColorStop(0,this.sColor);
39             this.color.addColorStop(1,this.eColor);
40             cxt.fillStyle=this.color;
41             cxt.fill();
42             cxt.restore();
43             this.time+=1;
44         }
45     }
46
47
48     function Sun(){//太阳1
49         DrawStart.call(this,0,0,20,0,"#f00","#f90");
50     }
51     function Mercury(){//水星2
52         DrawStart.call(this,0,-50,10,87.70,"#A69697","#5c3e40");
53     }
54     function Venus(){//金星3
55         DrawStart.call(this,0,-100,10,224.71,"#c4bbac","#1f1315");
56     }
57     function Earth(){//地球4
58         DrawStart.call(this,0,-150,10,365.224,"#78b1e8","#050c12");
59     }
60     function Mars(){//火星5
61         DrawStart.call(this,0,-200,10,686.98,"#cec9b6","#76422d");
62     }
63     function Jupiter(){//木星6
64         DrawStart.call(this,0,-250,10,4332.589,"#c0a48e","#322");
65     }
66     function Saturn(){//土星7
67         DrawStart.call(this,0,-300,10,10759.5,"#f7f9e3","#5c4533");
68     }
69     function Uranus(){//天王星8
70         DrawStart.call(this,0,-350,10,30799.95,"#a7e1e5","#19243a");
71     }
72     function Neptune(){//天王星9
73         DrawStart.call(this,0,-400,10,60152.95,"#0661b2","#1E3b73");
74     }
75
76     var s=new Sun();//1
77
78     var m=new Mercury();//2
79     var v=new Venus();//3
80     var e=new Earth();//4
81     var ma=new Mars();//5
82     var j=new Jupiter();//6
83     var sa=new Saturn();//7
84     var ur=new Uranus();//8
85     var ne=new Neptune();//9
86
87 setInterval(function(){
88     cxt.clearRect(0,0,1000,1000);
89     DrawTrack();
90     s.draw();
91     m.draw();
92     v.draw();
93     e.draw();
94     ma.draw();
95     j.draw();
96     sa.draw();
97     ur.draw();
98     ne.draw();
99 },10);

canvas之太阳系效果,布布扣,bubuko.com

时间: 2025-01-31 00:47:56

canvas之太阳系效果的相关文章

canvas动画文字效果

Doughnut Chartvar c=document.getElementById("canvas");var ctx=c.getContext("2d");ctx.font="50px sans-serif";ctx.fillText("75%",40,92);//ctx.clearRect(40, 52, 74, 68); var c=document.getElementById("canvas"

用Canvas制作剪纸效果

在做剪纸效果之前,先介绍剪纸效果运用到的一些知识: 1.阴影: 在Canvas之中进行绘制时,可以通过修改绘图环境中的如下4个属性值来指定阴影效果: shadowColor:CSS格式的颜色字串.默认值为rgba(0,0,0,0),即完全透明的黑色. shadowOffsetX:阴影在X轴方向的偏移量,以像素为单位.默认值为0 shadowOffsetY:阴影在Y轴方向的偏移量,以像素为单位.默认值为0 shadowBlur:表示阴影效果如何延伸的double值.默认值为0.该值用于高斯模糊方程

HTML5之Canvas时钟(网页效果--每日一更)

今天,带来的是使用HTML5中Canvas标签实现的动态时钟效果. 话不多说,先看效果:http://webfront.verynet.cc/pc/canvas-clock.html 众所周知,Canvas标签是HTML5中的灵魂,HTML5 Canvas是屏幕上的一个由JavaScript控制的即时模式位图区域.即时模式是指在画布上呈现像素的方式, HTML5 Canvas通过JavaScript调用CanvasAPI,在每一帧完全重绘屏幕上的位图.详细将在下面代码进行说明. HTML结构代码

【HTML5】Canvas 实现放大镜效果

目录 图片放大镜 效果 原理 初始化 画背景图片 计算图片被放大的区域的范围 绘制放大镜区域 添加鼠标事件 图表放大镜 原理 绘制原始线段 计算原始区域和放大镜区域 计算线段在新坐标系统的位置 绘制放大镜中心点 绘制放大镜 添加事件 图片放大镜 效果 在线演示    源码 原理 首先选择图片的一块区域,然后将这块区域放大,然后再绘制到原先的图片上,保证两块区域的中心点一致, 如下图所示: 初始化 <canvas id="canvas" width="500"

canvas刮奖效果

上次写刮奖效果都一年前了,那时候还是百度找的源码给改的,自己其实也是迷迷糊糊的,这次因为让妹子写,然后想着自己也重新整理下. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0,

canvas水波纹效果

先看效果 演示效果 自然界中水波纹效果十分麻烦,我这里只是根据水波纹的几个特性,在理想环境下模拟水波纹的扩散效果. 这里应用到的属性有:扩散.波动.折射. 扩散:很好理解,水波纹会从触发原点开始向周围扩散 波动:水波纹就一直波,在切面上观看,就是一个正弦函数的波形图 折射:光在不同介质中传播速度不同导致出现折射效果. 如果在平静条件下,在垂直方向上看水底事物,很正常. 在波动条件下,因为水的上下波动,导致垂直方向上看到的水底物体,因为波的角度不同,导致水下事物反射的光到人眼的时候,出现一些偏移.

Canvas之太阳系

<!DOCTYPE html> <html> <head> <title>太阳系</title> </head> <body> <canvas id="canvas" width="1000" height="1000" style="background: #000">您的浏览器不支持</canvas> <scr

canvas刮刮效果实现

网页特效——刮刮效果实现. 首先分析一下,实现刮刮效果的原理,需要用到html5中的画布canvas,这是一个强大的提供绘制功能的标签,主要用在网页中的图表呈现,比如一些折线图.扇形图等,甚至在游戏开发当中也有广泛的运用,过多的介绍就不多说,刮刮效果需要会使用canvas实现基本的路径绘制,另外需要知道如何获取手指在页面当中的位置(方便跟踪手指移动并绘制),其次需要用到一个核心属性globalCompositeOperation,该属性设置或返回如何将一个源(新的)图像绘制到目标(已有的)的图像

基于HTML5 Canvas生成粒子效果的人物头像

前面我们分享过一个HTML5 Canvas实现的图像马赛克模糊效果,HTML5处理图片真的非常简单.今天我们要再利用HTML5 Canvas实现一个粒子效果的人物头像,你可以任意选择一张头像图片,接下来该图片会被打散成许多粒子,然后慢慢的重组成图片,鼠标滑过图片时粒子还会出现浮动的动画特效,看上去非常酷. 在线预览   源码下载 HTML代码如下 <p class="center">Change pixel resolution <input type="r