通过Canvas画布制作黑客帝国背景

电影介绍

先推荐一下这部电影

《黑客帝国》是由华纳兄弟公司发行的系列动作片,该片由沃卓斯基兄弟执导,基努·里维斯、凯莉·安妮·莫斯、劳伦斯·菲什伯恩等主演。影片已上映的有四部,为《黑客帝国》(1999年3月31日上映 )、《黑客帝国2:重装上阵》(2003年5月15日上映)《黑客帝国3:矩阵革命》(2003年11月5日上映 ),《黑客帝国4:矩阵重启》(2021年12月22日在北美上映、2022年1月14日中国上映)
影片讲述了一名年轻的网络黑客尼奥发现看似正常的现实世界实际上是由一个名为“矩阵”的计算机人工智能系统控制的,尼奥在一名神秘女郎崔妮蒂的引导下见到了黑客组织的首领墨菲斯,三人走上了抗争矩阵征途的故事。

《黑客帝国》
在矩阵中生活的一名年轻的网络黑客尼奥(基努·里维斯饰)发现,看似正常的现实世界实际上似乎被某种力量控制着,尼奥便在网络上调查此事。而在现实中生活的人类反抗组织的船长墨菲斯(劳伦斯·菲什伯恩饰), 也一直在矩阵中寻找传说的救世主,就这样在人类反抗组织成员崔妮蒂(凯莉·安·摩丝饰)的指引下,两人见面了,尼奥也在墨菲斯的指引下,回到了真正的现实中,逃离了矩阵,这才了解到,原来他一直活在虚拟世界当中 。

《黑客帝国2:重装上阵》
实际上,整个《重装上阵》是尼奥探寻自己使命背后真相的过程,他要为自己的行动寻找一个可以接受的理由。在上集打败史密斯(雨果·维文饰)、救出墨菲斯之后,尼奥随同亲密爱人崔妮蒂和其他战友一起,乘坐Nebuchadnezzar号飞船返回地球上最后一个人类据点——锡安基地。在那里,他们和其他自由战士们聚集到了一起。就在这时,母体系统决定“先下手为强”,派遣了为数250000的电子乌贼大军,开始进攻锡安基地,微弱的基地防守力量根本不足以对抗如此强大的机甲兵团,看来人类最后的香火也岌岌可危。可是,“母体取经”的道路注定是凶险多端的:在寻找母体系统内唯一知道系统弱点的“制钥者”的过程中,尼奥、墨菲斯和崔妮蒂遇到了前所未有的困难 。

《黑客帝国3:矩阵革命》
在《黑客帝国》系列电影最后一集中,延续上集《黑客帝国2:重装上阵》的故事,并揭晓机器与人类的最终命运。面对如潮的电子乌贼,人类城市危在旦夕,墨菲斯和崔妮蒂等欲与入侵者决一死战。此时,“救世主”尼奥的身体和思想却意外分离,后者再度陷入到“母体”中。墨菲斯和崔妮蒂也不得不回到“母体”和守护天使一起寻找他。

网页效果展示

这里有两个版本的,一个是跟电影相似的,属于背景文字为日语,另一个的话就是01010101的信息。

然后具体实现代码

文件结构

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="style.css"><script src="script.js" defer></script><title>Document</title>
</head><body><canvas id="canvas"></canvas><canvas id="fb"></canvas>
</body></html>

script.js

根据注释可以来自定义背景所需要展示的内容。

var canvas = document.getElementById("canvas")
canvas.width = window.innerWidth
canvas.height = window.innerHeight
var ctx = canvas.getContext("2d")
var particlesArray = []
var fontsize = 24
var str = "01010110110101010101010101010101010110101010101010010101010"  // 可以通过修改这里,来修改背景图片的现实内容
ctx.font = fontsize + "px Arial"var count = 200var fb = document.getElementById("fb")
fb.width = window.innerWidth
fb.height = window.innerHeight
var ctxfb = fb.getContext("2d")
for (var i = 0; i < fb.height; i += 3) {ctxfb.moveTo(0, i)ctxfb.lineTo(canvas.width, i)ctxfb.stroke()
}
class Particle {constructor() {this.x = (Math.random() * (canvas.width / 24) | 0) * 24this.y = Math.random() * canvas.heightthis.size = fontsize}update() {this.y += this.size}draw() {ctx.fillStyle = "green"ctx.fillText(str[Math.random() * str.length | 0], this.x, this.y)}
}function init() {for (var i = 0; i < count; i++) {particlesArray.push(new Particle())}
}
init()function draw() {ctx.globalAlpha = 0.1ctx.fillStyle = "rgb(0,0,0)"ctx.fillRect(0, 0, canvas.width, canvas.height)ctx.globalAlpha = 1for (var i = 0; i < particlesArray.length; i++) {particlesArray[i].update()particlesArray[i].draw()if (particlesArray[i].y > canvas.height) {particlesArray[i].y = 0particlesArray[i].x = (Math.random() * (canvas.width / 24) | 0) * 24}}
}
setInterval(draw, 100)

style.css

css样式布局文件。

* {margin: 0;padding: 0;
}body {background: black;display: flex;width: 100%;height: 100vh;
}canvas {width: 100%;height: 100%;position: absolute;
}

通过Canvas画布制作黑客帝国背景相关推荐

  1. 为canvas画布动态设置背景图片

    为canvas画布动态设置背景图片 关键是将canvas和img标签放到同一个盒子里,盒子设置相对位置,并且canvas和img需要设置相同的相对位置 <div class="list ...

  2. 前端|利用canvas画布制作地球轨道

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 一.什么是<canvas> <canvas& ...

  3. canvas画布制作签名

    使用canvas画布绘制签名,可撤回上一步.重新绘画.保存签名到电脑,先看效果.... 一.基本结构 <template><div class="signature&quo ...

  4. css画布星空_使用HTML5画布制作星空背景

    css画布星空 Because it works on a pixel-by-pixel basis, canvas is perfectly suited to making extremely d ...

  5. js+canvas画布制作烟花

    先看看烟花自动播放效果: 实现步骤如下: 1.将html与body填满整个屏幕 html, body {     margin: 0;     padding: 0;     width: 100%; ...

  6. CSS3 渐变新特性和HTML5 Canvas画布背景渐变实现方法详解

    CSS3 渐变新特性和HTML5 Canvas画布背景渐变实现方法详解 大家好,又见面了,感觉我上一篇博客对部分同学都挺有帮助的,于是我决定继续写下去,会继续的解析知识点让大家更容易理解,希望能给大家 ...

  7. 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    文章目录 一.鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 1.保存当前鼠标指针指向的位置 2.根据鼠标指针指向的位置以及比例重新计算图片位置 二.绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩 ...

  8. html5粒子形成图案,html5 canvas粒子形成下雪背景的效果

    本篇文章给大家带来的内容是关于html5 canvas粒子形成下雪背景的效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. canvas粒子形成下雪背景 body{ margin: ...

  9. js将文字填充与canvas画布再转为图片

    需求:封装consul服务的webUI: 原因:展示consul的服务信息时,需要嵌套动画,由于其没有内置的icon,所以将服务name放于图片位: 分析:展示信息时采用了卡片式的服务布局,缩放式的服 ...

最新文章

  1. Oracle VM VirtualBox安裝Windows 2000失败
  2. windows定时关机
  3. 系统如何安装到租的服务器,租用服务器后,检查及环境配置步骤
  4. 深度:应用安全是信息安全防护的短板
  5. python 材料科学与工程专业_2020年最全的python的就业方向+清华计算机社流出上千集编程资料...
  6. UNILEVER STUDENT PROJECTS EVENT
  7. NIO 之 ByteBuffer实现原理
  8. 模型部署到移动端_TensorFlow Lite 自然语言处理模型的最新功能,助力设备端 NLP 部署...
  9. python声明数组_在Python中如何声明动态数组
  10. linux怎么用jconsole_jconsole监控上Linux上的JVM
  11. *和**在Python中意味着什么?它与指针和地址有关吗?
  12. 10炫酷关机_Linux 中实用但很小众的 11 个炫酷终端命令
  13. jmu-python-函数-找钱_6-1 jmu-python-杨辉三角
  14. Telerik RadColorPicker 漂移问题的解决
  15. 视频监控系统平台服务器维护,平安城市视频监控系统运维方案
  16. hplus java_Java HijrahDate plus(long, TemporalUnit)用法及代码示例
  17. 卫星电视的双本振,单本振及高频头相关知识普及
  18. JavaScript数组some方法
  19. LORA+4G无线组网的方案
  20. PSMN4R8-100BSE MOSFET管 N-CH 100V D2PAK

热门文章

  1. Win10 怎么显示隐藏文件和文件夹
  2. 目前比较全面且实用的Java中文名称批量生成器
  3. 百度语音合成(TTS)SDK使用方法
  4. 数据库系统概论复习笔记总结
  5. java人民币换欧元_关于java:用于存储货币汇率的设计
  6. 数字孪生城市框架与发展建议
  7. Go语言特性记录及与java、python对比之包、变量和函数
  8. 商务团队建设PPT模板
  9. python程序员兼职平台-用Python拓展副业的几种方式
  10. 不同粒径大小的金纳米粒子|单分散小粒径金纳米颗粒|黄色纳米颗金粒粒径2nm