在好例子网,分享、交流、成长!
您当前所在位置:首页CSS 开发实例Box Model → html5实现太阳系转动效果

html5实现太阳系转动效果

Box Model

下载此实例
  • 开发语言:CSS
  • 实例大小:3.24KB
  • 下载次数:27
  • 浏览次数:598
  • 发布时间:2016-01-08
  • 实例类别:Box Model
  • 发 布 人:crazycode
  • 文件格式:.html
  • 所需积分:2
 相关标签: HTML5 HTML 转动

实例介绍

【实例简介】

【实例截图】

【核心代码】

<!doctype html>
<html>
	<head>
		<title>canvas太阳系</title>
		<meta charset='utf-8'>
	</head>
	<body>
		<canvas width='1000' height='1000' style='background:#000' id='canvas'>
			您的浏览器不支持HTML5 canvas,无法查看canvas效果
		</canvas>

		<script type="text/javascript">
			//获取canvas绘图环境
			var context = document.getElementById('canvas').getContext('2d');
			var time = 0;
			//星球轨道
			function drawTrack(){
				for(var i = 0; i < 8; i  ){
					//开始路径
					context.beginPath();
					context.arc(500,500,(i 1)*50,0,360,false);
					//关闭路径
					context.closePath();
					context.strokeStyle = '#fff';
					context.stroke();
				}
			}
			//执行以下此函数,画出各星球的轨道
			drawTrack();

			//星球  星球对象的构造方法 实例化后能画出所有的星球
			function Star(x,y,radius,sColor,eColor,cycle){
			//星球需要的哪些属性
				//星球的坐标点
				this.x = x;
				this.y = y;
				//星球的半径
				this.radius = radius;
				//星球的颜色
				this.sColor = sColor;
				this.eColor = eColor;
				//公转周期
				this.cycle = cycle;

				//绘画出星球
				this.draw = function(){  //异次元空间进行绘画
					context.save();
					//重设0,0坐标点
					context.translate(500,500);
					//设置旋转角度
					context.rotate(time*360/this.cycle*Math.PI/180);

					context.beginPath();
					context.arc(this.x,this.y,this.radius,0,360,false);
					context.closePath();
					//星球的填充色(径向渐变 开始色和结束色)
					this.color = context.createRadialGradient(this.x,this.y,0,this.x,this.y,this.radius);
					this.color.addColorStop(0,this.sColor);
					this.color.addColorStop(1,this.eColor);
					context.fillStyle = this.color;
					context.fill();
					context.restore();

					time  =1;
				}
				
			}

			//各星球构造方法 从star中继承
			function Sun(){
				Star.call(this,0,0,20,'#f00','#f90',0);
			}
			function Mercury(){
				Star.call(this,0,-50,10,'#A69697','#5C3E40',87.70);
			}
			function Venus(){
				Star.call(this,0,-100,10,'#C4BBAC','#1F1315',224.701);
			}
			function Earth(){
				Star.call(this,0,-150,10,'#78B1E8','#050C12',365.2422);
			}
			function Mars(){
				Star.call(this,0,-200,10,'#CEC9B6','#76422D',686.98);
			}
			function Jupiter(){
				Star.call(this,0,-250,10,'#C0A48E','#322222',4332.589);
			}
			function Saturn(){
				Star.call(this,0,-300,10,'#F7F9E3','#5C4533',10759.5);
			}
			function Uranus(){
				Star.call(this,0,-350,10,'#A7E1E5','#19243A',30799.095);
			}
			function Neptune(){
				Star.call(this,0,-400,10,'#0661B2','#1E3B73',164.8*365);
			}

			//各星球对象的实例化
			var sun = new Sun();
			var water = new Mercury();
			var gold = new Venus();
			var diqiu = new Earth();
			var fire = new Mars();
			var wood = new Jupiter();
			var soil = new Saturn();
			var sky = new Uranus();
			var sea = new Neptune();

			function move(){
				//清除画布
				context.clearRect(0,0,1000,1000);
				//重新绘制一遍轨道
				drawTrack();

				sun.draw();
				water.draw();
				gold.draw();
				diqiu.draw();
				fire.draw();
				wood.draw();
				soil.draw();
				sky.draw();
				sea.draw();
			}
			
			//星球围绕太阳运动起来
			setInterval(move,100);
		</script>
	</body>
</html>

标签: HTML5 HTML 转动

实例下载地址

html5实现太阳系转动效果

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警