星空穿梭

news/2024/12/29 21:06:15/

1、构造页面的HTML代码如下:

 <canvas id="myCanvas"></canvas>@*canvas相当于画布*@

2、css样式代码如下:

*{margin:0;padding:0;
}
html,body{width:100%;height:100%;overflow:hidden;
}
canvas{/*画布背景设置为黑色*/background:#000;
}

3、声明变量获取数据代码如下:

//画布
var myCanvas = document.getElementById('myCanvas');//getElementById取元素
//画笔
var ctx = myCanvas.getContext('2d');
var list = [];//存点数组
//将页面每一个小圆点的信息存在list数组中
//数组中的每一位是一个对象,对象中存着每一个小点的信息
//利用构造函数生成数组
//很多点[{x,y,r},{x,y,r}]每一个点以对象存在数组里

4、设置画布的宽和高

function init() {myCanvas.width = window.innerWidth;myCanvas.height = window.innerHeight;
}
init();
//监听屏幕的大小改变,重新为canvas大小赋值
window.onresize = init;

5、构造函数

function Star(x, y, r, disX, disY) {////将传入的参数设置为对象的属性//this指的是Star//位置坐标this.x = x;this.y = y;//半径this.r = r;//变化距离this.disX = disX;this.disY = disY;       
}

6、创建所有点

for (var i = 0; i < 800; i++) {//设置位随机值var x = Math.random() * myCanvas.width;//坐标var y = Math.random() * myCanvas.height;////半径  random随机数*2var radius = Math.random() * 2;var disX = x - myCanvas.width / 2;var disY = y - myCanvas.height / 2;// new是创建对象  push往数组里添加对象list.push(new Star(x, y, radius, disX, disY));//radius是实参
}

7、星星运动位置的改变和位置的刷新 ,位置由x,y决定

function render() {//清除画布ctx.clearRect(0, 0, myCanvas.width, myCanvas.height);for (var i = 0; i < list.length; i++) {var item = list[i];//更新item.x += item.disX / 50;item.y += item.disY / 50;//判断小圆点消失if (item.x<0 || item.y <0 || item.x>myCanvas.width ||item.y>myCanvas.height) {//重新出现一个小星星的位置item.x = Math.random() * myCanvas.width;//坐标item.y = Math.random() * myCanvas.height;////同时根据当前查询的位置设置移动距离item.disX = item.x - myCanvas.width / 2;item.disY = item.y - myCanvas.height / 2;}//开始宣染每一个小圆点ctx.beginPath();//开始新的路径 开始绘画//设置填充颜色ctx.fillStyle = "#B200FF";//每一个小星星为一个小圆ctx.arc(item.x, item.y, item.r, 0, Math.PI * 2, false);ctx.fill();}//不断绘制canvas  根据disx与disy的位置变化  更新坐标 视觉上位运动状态setTimeout(render, 40);//无限调用
}
render();

8、效果图
在这里插入图片描述


http://www.ppmy.cn/news/649625.html

相关文章

星空软件 linux,使用了Stellarium App,才发现星空摄影如此简单

玩星空摄影&#xff0c;想拍摄一个完美的银河拱桥&#xff0c;可是你知道银河在什么时候升起吗&#xff1f;在哪个方位升起、又在哪个方位落下&#xff1f;只有提前知道了这些&#xff0c;你才能在白天有目的地选择地面前景&#xff0c;使整幅画面看起来更加的协调和美丽。 例如…

流星世界,星星宇宙,工具自取

目录 1.my_tools中文件说明 2. tools_bj中文件说明 3.阿里云盘-部分内容不可分享&#xff08;iso/7z/rar等&#xff09;-解决方式 解决方式 请下载 pc版 阿里云盘&#xff0c;再在点击该链接获取资源&#xff0c;谢谢https://www.aliyundrive.com/s/o636C4SiKuP 1.my_tools中…

android大漩涡旋转效果(极光星空)

先放张效果图&#xff0c;gif录制把效果都显示成卡顿样子&#xff0c;其实不然 其实这是项目中的一个需求啦&#xff0c;我想着也写出来自己做个记录。 先来简单看下这个效果 1&#xff0c;背后有一个一直旋转的类似极光星空的效果&#xff0c;每个圆之间的距离逐渐增大&…

苹果手机怎么拍星空_手机怎么拍星空

1、安卓手机篇 打开手机相机,然后进入专业模式。 我们将感光度(ISO)调到1600,快门速度(s)调到30秒左右,对焦(AF)选择手动模式(MF),然后点击屏幕上无限远的地方对焦。 如果手机支持专业的RAW格式的话,可以在相机设置,然后分辨率中打开。这样拍摄的照片成像有保证。 如果想…

webgl绘制太阳系行星动画

webgl模拟太阳系 demo: minicode——太阳系 文章同时发布于&#xff1a;我的个人网站。 这次做的MiniCode&#xff0c;是用webgl模拟太阳系的动画&#xff0c;绘制了太阳系和绕太阳旋转的八颗行星。各个部分的绘制方法我简要概述下。 1. 背景星空 这部分本来打算采用绘制天…

苹果手机怎么拍星空_手机怎么拍摄星空?5分钟教你如何拍出璀璨星空

宇宙是个神秘的地方,在很小的时候小编就喜欢看着天文杂志,拿着天文望远镜在那遥望美丽的星空。许多小伙伴问小编,说手机能拍摄出很美的星空吗?小编的回答:当然!既然你们都问了这个问题,小编如果不教,就显得有些不近人情了。 下面我们就一起来看看如何拍摄我们头顶的璀璨…

special effects - 星空宇宙背景特效

星空宇宙背景特效 一. 效果图二. 实现代码 一. 效果图 二. 实现代码 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>星空宇宙背景特效</title><style>…

美轮美奂宇宙星空制作神器Spacescape

本文章由cartzhang编写&#xff0c;转载请注明出处。 所有权利保留。 文章链接&#xff1a;http://blog.csdn.net/cartzhang/article/details/46444569 作者&#xff1a;cartzhang 一、 简介 Spacescape 宇宙星空工具就是创建宇宙天空盒的工具&#xff0c;天空盒有星星和星…