Canvas之太阳与地球

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>太阳与地球</title>
</head>
<body>
    <canvas id="canvas" width="1000" height="1000" style="background: #000">浏览器不支持Canvas元素</canvas>
    <script>
        var canvas = document.getElementById('canvas');
        var context = canvas.getContext('2d');

        var time = 0;

        function draw() {
            //清除之前的内容,重新画
            context.clearRect(0, 0, 1000, 1000);
            //画轨道
            context.strokeStyle = "white";
            context.beginPath();
            context.arc(500, 500, 100, 0, 360, false);
            context.closePath();
            context.stroke();
            //画太阳
            context.beginPath();
            context.arc(500, 500, 20, 0, 360, false);
            context.closePath();
            //参数(内圆心x,内圆心y,内半径,外圆心x,外圆心y,外半径)
            var sunColor = context.createRadialGradient(500, 500, 0, 500, 500, 20);
            /*
              渐变
              第一个参数:一个浮点数,从最中间0开始,到1结束
              第二个参数:颜色参数
            */
            sunColor.addColorStop(0, "#f80");
            sunColor.addColorStop(0.5, "#f90");
            sunColor.addColorStop(1, "#fa0");
            context.fillStyle = sunColor;
            context.fill(); //太阳需要填充
            // context.stroke();
            //画地球,地球要动,需要在异次元空间里画
            context.save();
            context.translate(500, 500);//设置异次元的(0,0)点
            context.rotate((time * 360 / 365) * Math.PI / 180);
            context.beginPath();
            context.arc(0, -100, 10, 0, 360, false);
            context.closePath();
            var earthColor = context.createRadialGradient(0, -100, 0, 0, -100, 10);//这里内外圆心要相等
            earthColor.addColorStop(0, "#78b1e8");//78ble8
            earthColor.addColorStop(1, "#050c12");//050c12
            context.fillStyle = earthColor;
            context.fill();
            //  context.stroke();
            context.restore();

            time += 1;
        }
        setInterval(draw, 50);//每隔50毫秒刷新一次页面,让地球动起来注意这里draw不要加上双括号
    </script>
</body>
</html>

时间: 2024-10-10 10:55:23

Canvas之太阳与地球的相关文章

OpenGL学习笔记 之三 (简单示例 太阳月亮地球)

#include<glut.h> // 太阳.地球和月亮 // 假设每个月都是30天 // 一年12个月,共是360天 static int day = 150;//day的变化:从0到359 void myDisplay(void) { glDepthFunc(GL_LEQUAL);//设置深度<=通过,与物体之间的前后有关 glEnable(GL_DEPTH_TEST);//深度检测 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

第四太阳季-地球泥炭纪-禾本科植物星座-小麦-大麦,高粱,小米,水稻 星座 收回 投射到全球税务系统的所有星光信号

为彻底的,完全的,不留任何遗憾的,贯穿习主席对全国税务系统的改革要求,我们太阳系的12位天神决定 从今天开始,全面收回五谷杂粮星座的所有星光信号 收个锤子的税,爬去死.... 地球的兄弟们,姐妹们,父老乡亲们...大家继续发财啊........ 原文地址:https://www.cnblogs.com/comsci/p/11875374.html

模拟太阳、地球和月亮

代码如下: #include <windows.h> //#include <GLUT/glut.h> #include <GL/glut.h> #include <math.h> #include <iostream> using namespace std; #define GL_PI 3.1415f void RenderScene() { static float fMoonRot = 0.0f; static float fEarthR

CSS太阳月亮地球三角恋旋转效果

纯粹玩一下,好像没有什么实际的卵用,but,纯玩买不了上当,纯玩买不了受骗........ 地月旋转的一个css效果,无聊玩玩,可以复制到记事本试试 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>CSS地心旋转效果</title> <style> .box { transform: scale(0.

学习HTML5, Canvas及简单动画的使用

通过在CSDN中的一些简单课程学习,跟随老师联系,做了如下的月亮,太阳和地球的运动效果.纪录在文章中,用于下次使用. 准备工作如下: 1. 使用三张背景图片 太阳 月亮 地球 2. 在HTML页面中定义一个CANVAS 1 <body> 2 <div style="background-color:green;text-align:center ;"> 3 <canvas id="c" style="background-co

人造卫星为什么会绕着地球转而不是停在太空中或者越飞越远.掉进地球的卫星为什么烧不完.

人造卫星为什么会绕着地球转而不是停在太空中或者越飞越远.掉进地球的卫星为什么烧不完.卫星被火箭推到太空中之后失去火箭的推动不就停在太空中或者因为惯性越飞越远了吗,为什么会绕着地球在椭圆形的轨道上飞?报废的卫星为什么又会掉下来?掉下来的卫星有的为什么会在大气层中没烧尽,那些卫星不是都不能耐高温的吗,应该一进大气层就熔了啊. 答: 第一点:卫星绕着地球轨道运行,不会飞出去也不会掉下来,归根到底都是万有引力的作用.可以这样类比,我们拿着绳子一头绑着石头用力做绕圈运动,绳子的拉力提供石头运行的向心力,石

转载---编写高质量代码:改善Java程序的151个建议(第2章:基本类型___建议21~25)

阅读目录 建议21:用偶判断,不用奇判断 建议22:用整数类型处理货币 建议23:不要让类型默默转换 建议24:边界还是边界 建议25:不要让四舍五入亏了一方 不积跬步,无以至千里: 不积小流,无以成江海. ---荀子<劝学篇> 回到顶部 建议21:用偶判断,不用奇判断 判断一个数是奇数还是偶数是小学里的基本知识,能够被2整除的整数是偶数,不能被2整除的数是奇数,这规则简单明了,还有什么可考虑的?好,我们来看一个例子,代码如下: 1 import java.util.Scanner; 2 3

数学故事

发信人: ukim (我没有理想), 信区: Mathematics 标 题: Heroes in My Heart ( 序 ) 发信站: 北大未名站 (2002年04月06日14:23:24 星期六), 转信 --------------------------------- To Music For the Encouragement and Smiles She Gave Me --------------------------------- 序 废话几句. 多年以前,我有一个很宏伟的计

OpenGL入门学习

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的