html5做的太阳系

效果图:

源代码:

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<canvas id="canvas" width="1000" height="1000" style="background-color:black">
你的浏览器不支持canvas
</canvas>
<script type="text/javascript">
var canvas=document.getElementById("canvas");
var cxt=canvas.getContext('2d');
//轨道

function drawTrack(){
for(var i=0;i<8;i++){
cxt.beginPath();
cxt.strokeStyle="white";
cxt.arc(500,500,(i+1)*50,0,360,false);
cxt.stroke();
cxt.closePath();
}
}
drawTrack();
//星球
function Star(x,y,radius,cycle,scolor,ecolor){

//画出星球需要哪些属性
//星球的坐标点
this.x=x;
this.y=y;
//星球的半径
this.radius=radius;
//公转周期
this.cycle=cycle;
//星球的颜色
this.scolor=scolor;
this.ecolor=ecolor;
//新建一个渐变颜色空对象
this.color=null;
this.time=0;
//设置一个计时器
this.draw=function(){
cxt.save();
//重置0.0坐标点
cxt.translate(500,500);
//设置旋转角度
cxt.rotate(this.time*(360/this.cycle)*Math.PI/180);
cxt.beginPath();
cxt.strokeStyle="white";
cxt.arc(this.x,this.y,this.radius,0,360,false);
//设置星球颜色
//设置渐变颜色
this.color=cxt.createRadialGradient(this.x,this.y,0,this.x,this.y,this.radius);
this.color.addColorStop(0,this.scolor);
this.color.addColorStop(1,this.ecolor);
cxt.fillStyle=this.color;
//填充渐变颜色
//填充星球颜色

cxt.closePath();
cxt.fill();
cxt.restore();

this.time+=1;
}

}
//画星球
function Sun(){
Star.call(this,0,0,20,0,"#f00","#f90");
}

function Mercury(){
Star.call(this,0,-50,10,87.70,"#A69697","#5c3e40");

}
function Venus(){
Star.call(this,0,-100,10,224.701,"#c4bbac","#1f1315");
}
function Earth(){
Star.call(this,0,-150,10,365.224,"#78b1e8","#050c12");
}
function Mars(){
Star.call(this,0,-200,10,686.98,"#cec9b6","#76422d");
}
function Jupiter(){
Star.call(this,0,-250,10,686.98,"#c0a48e","#322222");
}
function Satrun(){
Star.call(this,0,-300,10,10759.5,"#f7f9e3","#5c4533");
}
function Uranus(){
Star.call(this,0,-350,10,30799.095,"#A7e1e5","#19243a");
}
function Neptune(){
Star.call(this,0,-400,10,60152,"#0661b2","#1e3b73");
}
var sun=new Sun();
var Mercury=new Mercury();
var Venus=new Venus();
var Earth=new Earth();
var Mars=new Mars();
var Jupiter=new Jupiter();
var Satrun=new Satrun();
var Uranus=new Uranus();
var Neptune=new Neptune();

function move(){
//清除画布
cxt.clearRect(0,0,1000,1000);
//画出轨道
drawTrack();
sun.draw();
Mercury.draw();
Venus.draw();
Earth.draw();
Mars.draw();
Jupiter.draw();
Satrun.draw();
Uranus.draw();
Neptune.draw();
}

//使各星球进行运动
setInterval( move,10);

</script>
</body>
</html>

转载于:https://www.cnblogs.com/cjh1/p/6617676.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 11 任务管理器重磅升级!界面迎来全新设计,十年来首次大改!

面向 Dev 频道的 Windows 预览体验成员&#xff0c;微软近日发布了 Windows 11 预览版 Build 22557。在此版本中&#xff0c;任务管理器迎来了全新的设计&#xff0c;这是其自 Windows 8 以来的首次变更&#xff0c; 也是任务管理器十年来最大的一次升级。史诗级更新&#xff0…

modbus调试工具 linux,linux libmodbus的移植

1.前言Modbus是一个工业通信系统&#xff0c;由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。2.移植步骤第一&#xff0c;进入libmodbus目录下&#xff0c;在交叉编译器是最好…

微博自媒体,一个新的生态

昨日&#xff0c;微博、UC和360&#xff0c;三方宣布将联合打造自媒体平台&#xff0c;这是继微信公众平台、搜狐新闻客户端、百度百家、今日头条之后的又一大自媒体平台。自媒体平台之争正愈演愈烈&#xff0c;而这对自媒体人和读者来说都算是好事。为何巨头们钟爱自媒体起初微…

开发者说PaddleOCR的.NET封装与应用部署

本项目是一个基于PaddleOCR的C代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能&#xff0c;同时针对小图识别不准的情况下&#xff0c;做了优化&#xff0c;提高识别准确率。项目包含总模型仅8.6M的超轻量级中文OCR&#x…

转载 雨松mono Unity获取游戏对象详解(来自我的长微博)

Unity获取游戏对象详解&#xff08;来自我的长微博&#xff09; 转载 自 雨松mono 本文固定链接: http://www.xuanyusong.com/archives/2768转载请注明: 雨松MOMO 2014年06月16日 于 雨松MOMO程序研究院 发表我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样&a…

linux怎么看是否安装kde桌面,ubuntu 7上安装kde桌面

开始使用Red Hat是因为一次服务器配置的需要&#xff0c;学院的精品课程建设需要自己建立一个支持JSP/Servlet 的服务器&#xff0c;由于以前做开发一直在windows平台下开发很少在linux下进行开发&#xff0c;最多也就是在linux 下进行测试。不过Red Hat的体积确实不敢恭维&am…

CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决

其实错误原因并不是因为此错误&#xff0c;经检测&#xff0c;邮件服务器返回的真实错误是 501 mail from address must be same as authorization user 。只因为同时返回了 503 Error: need MAIL command 和 503 Error: need RCPT command &#xff0c;而ECSHOP只提示了最后一…

真不值!技术大神,却只是阿里P6...

阅读本文大概需要5分钟。昨天在知乎上看到一个程序员发展的好问题&#xff1a;死月是前端领域一个比较知名的IP&#xff0c;之前在大搜车带领整个node团队&#xff0c;出过书写过技术专栏&#xff0c;在业内享有比较高的知名度。认识死月的同学都对他评价非常高&#xff0c;甚至…

linux之如何快速查看电脑内存大小

1、问题 linux之如何快速查看电脑内存大小 2、解决办法 vim /proc/meminfo 3、结果展示

有趣的时间

人的数字造型 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <embed width"160" height"70" allowscriptaccess"never…

为什么启动hbase shell后,创建按create 'test', 'cf'失败?

2019独角兽企业重金招聘Python工程师标准>>> 答&#xff1a;是hostname的问题。 sudo gedit /etc/localhosts 将你的主机名改为127.0.0.1 即可。 转载于:https://my.oschina.net/u/923087/blog/290592

mini2440:最简单的嵌入式linux驱动程序模块,mini2440:最简单的嵌入式Linux驱动程序模块 解决找不到mini2440……sample...

原文&#xff1a;http://myswirl.blog.163.com/blog/static/5131864220109143331356/注意&#xff1a;开发Arm平台的驱动&#xff0c;需要Arm平台的源码树&#xff1b;注意&#xff1a;ARM平台的linux内核源码需要先编译&#xff0c;否则无法编译驱动&#xff1b;第一种方式&am…

机器学习-tensorflow

为什么80%的码农都做不了架构师&#xff1f;>>> 例子1 先从helloworld开始: tubuntu:~$ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license&qu…

C# 多个异步方法的异常处理

、如果调用两个异步方法&#xff0c;每个都会抛出异常&#xff0c;该如何处理呢 ? 在下面的示例中&#xff0c;第一个 ThrowAfter 方法被调用&#xff0c;2s 后抛出异常(含消息 first)。该方法结束后&#xff0c;另一个 ThrowAfter 方法也被调用&#xff0c;1s 后也抛出异常。…

linux解pdf隐写工具,Linux版PDF解密工具PDFDecryptionTool-Deepin-amd64.deb下载

PDF解密工具PDFDecryptionTool的deb安装包提供下载了&#xff0c;可用在Deepin 20.2等Linux发行版中。该工具用于解除PDF文件的所有者权限的密码&#xff0c;解除编辑、复制等限制。另外&#xff0c;PDFDecryptionToolWin.py为Windows版本&#xff0c;针对Windows优化了下UI&am…

Mysql中explain命令查看语句执行概况

Mysql中可以使用explain命令查看查询语句的执行方式&#xff0c;使用方法举例&#xff1a;explain 查询语句 例如&#xff1a;explain select * from user_info 几个重要的字段说明&#xff1a; table&#xff1a;此次查询操作是关联哪张数据表 type&#xff1a;连接查询操作类…

Android之java.lang.UnsatisfiedLinkError(Failed to register native method ***callMethod1())解决办法

1、问题 Failed to register native method com.example.chenyu.test.JniClient.callMethod1() java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.example.chenyu.test-2/lib/arm/libFirstJni.so" 如下图 2、解决办法 原因:…

代码段编辑器SnippetEditor 2.1

1.选择程序版本 2.可以创建文件夹 3.新建片段 4.给片段取名 5.双击进行编辑 6.点击保存 7.直接使用 转载于:https://www.cnblogs.com/shiworkyue/p/3844993.html

HUAWEI nova 青春版闪速快充,让追剧不再断电

笔者是一个对追剧到极致要求的人&#xff0c;每每有好看的影剧出来&#xff0c;都迫不及待想要一次看个够本。但是事与愿违&#xff0c;手机总是很不争气&#xff0c;虽然电池续航能力不算太差&#xff0c;但是对于我们这种追剧重症患者来说是完全不够的&#xff0c;每次出门还…

飞信linux下载文件,OpenFetion(飞信for Linux)

这是OpenFetion(飞信for Linux)&#xff0c;openfetion是使用GTK 编写的基于libofetion的用户界面。软件功能程序简洁轻快&#xff0c;界面美观&#xff0c;支持libofetion当前提供的所有功能。软件优势它是目前GNU/Linux平台上最优秀的飞信客户端程序&#xff0c;也是基于libo…