<!DOCTYPE html>
<html class=" -webkit- js flexbox canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers applicationcache svg inlinesvg smil svgclippaths">
<head>
<meta charset="UTF-8">
<meta name="viewport" content=" initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<title>HTML5 Canvas模拟的病毒传播扩散动画特效</title>
<meta name="description" content="HTML5 Canvas模拟的病毒传播扩散动画特效">
<meta name="keywords" content="HTML5 Canvas模拟的病毒传播扩散动画特效">
<style>
* {
margin: 0px;
box-sizing: border-box;
}
body {
background-color: #111;
}
</style>
</head>
<body>
<script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>
<canvas width="1440" height="655"><script src="js/prefixfree.min.js"></script>
<script src="js/modernizr.js"></script>
<script>
var canvas, ctx, walkers = [];
var colors = [
"rgba(255, 0, 126, .1)",
"rgba(86, 180, 255, .1)",
"rgba(255, 165, 20, .1)"
];
var Walker = function(x, y, color) {
this.x = x;
this.y = y;
this.color = color;
}
Walker.prototype.update = function(x, y) {
this.x = x;
this.y = y;
}
function rand(max) {
return Math.floor((max) * Math.random());
}
function setup() {
var x = Math.floor(window.innerWidth / 2);
var y = Math.floor(window.innerHeight / 2);
canvas = document.querySelector('canvas');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
ctx = canvas.getContext('2d');
ctx.lineWidth = 3;
for (var i = 0; i < 500; i++) {
walkers.push(new Walker(x, y, colors[rand(3)]));
}
}
function drawEach(walker) {
var x = walker.x,
y = walker.y;
switch (rand(4)) {
case 0:
if (walker.x < canvas.width) x += 5;
break;
case 1:
if (walker.x > 0) x -= 5;
break;
case 2:
if (walker.y < canvas.height) y += 5;
break;
case 3:
if (walker.y > 0) y -= 5;
break;
}
ctx.strokeStyle = walker.color;
ctx.beginPath();
ctx.moveTo(walker.x, walker.y);
ctx.lineTo(x, y);
ctx.stroke();
walker.update(x, y);
}
function draw() {
walkers.forEach(drawEach);
requestAnimationFrame(draw);
}
window.onload = function() {
setup();
requestAnimationFrame(draw);
}
</script>
</canvas>
</body>
</html>
HTML5 Canvas实现的模拟病毒传播扩散动画特效源码.zip
版权申诉
25 浏览量
2021-11-20
11:18:09
上传
评论
收藏 41KB ZIP 举报
易小侠
- 粉丝: 6469
- 资源: 9万+
最新资源
- 蓝zapro.apk
- chromedriver-linux64.zip
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- html动态爱心代码一(附源码)
- c40539bc-071a-486c-9d52-9d0c18d62dac 4.html
- 基于物理的非视域成像(NLOS)算法,利用了nerf+python源码+文档说明
- yuluer知更鸟.7z(1).001
- python课程设计-基于tensorflow实现的图文生成程序,数据集flickr30k-images+源代码+文档说明+截图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈