如何使用Canvas绘制闪电动画
在天气预报类移动网页应用中,我们常常需要使用到雷雨天气时的闪电动画。
本文介绍如何使用Canvas来很简单的实现这个效果。对于Canvas不熟悉的,可阅读踏得网Canvas基础知识。
本例预期结果如下:
本质上我们只是要在画布上绘制一条曲线而已,只不过这条曲线有固定的起点,相对随机的走向。
注意:这里是相对随机,也就是线条的走向不能毫无规律,一般不可能从左到右大幅度游走,而是有限区间内的游走。
具体代码实现如下:
var x = canvWidth / 2;
var y = 0;
var light = function() {
var r = 0;
ctx.beginPath();
ctx.moveTo(x, y);
r = Math.floor(Math.random() * 5) * canvWidth / 50;
if (r <= 30) {
x += r;
} else {
x -= r;
}
y += Math.floor(Math.random() * 5) * canvHeight / 70;
ctx.lineTo(x, y);
ctx.lineWidth = 3;
ctx.strokeStyle = "rgba(255, 255, 0, 1)"
ctx.stroke();
ctx.closePath();
if (y > canvHeight) {
ctx.clearRect(0, 0, canvWidth, canvHeight);
x = canvWidth / 2;
y = 0;
}
requestAnimationFrame(light);
};
light();
查看在线实例: http://wow.techbrood.com/fiddle/25402
by iefreer
如何使用Canvas绘制闪电动画相关推荐
- html 画动画效果,html5 canvas绘制曲线动画特效
特效描述:html5 canvas绘制 曲线动画特效. 代码结构 1. HTML代码 Balls Size Speed Delay Go! Presets: Atomic Flower Spiro Y ...
- html 闪电的动态效果图,利用HTML5实现Canvas空中闪电动画特效
特效描述:利用HTML5实现 Canvas 空中闪电 动画特效.利用HTML5实现Canvas空中闪电动画特效 代码结构 1. 引入JS 2. HTML代码 /*=================== ...
- 前端画圆弧html弧线的像素,使用canvas绘制圆弧动画
效果预览 canvas 绘制基本流程 初始画布 对于canvas的绘制,首先需要在html内指定一块画布,即, 可以看做是在PS中新建一个空白文档,之后所有的操作都将呈现在这个文档之上,与PS的区别是 ...
- canvas绘制简单动画思路总结
使用canvas绘制动画原理就是不断的绘制canvas图形,当画的速度够快,看上去就能动起来.这里需要了解一下屏幕刷新率,根据效果来调整绘制的速度(1秒刷新60次 屏幕刷新率保持在60次/秒保障动画效 ...
- 微信小程序利用canvas绘制一个动画百分比圆圈
效果图(动态的圆圈) <template> <view class='circleBar'><view class="wrap"><vie ...
- logo像闪电的html编译器,基于Html5 Canvas绘制逼真的闪电动画特效
Canvas绘制闪电动画特效 canvas, body{ padding: 0; margin: 0; overflow: hidden; } var width, height var step = ...
- canvas动画科技园_使用 canvas 实现精灵动画
在最近项目中需要实现一个精灵动画,素材方只提供了一个短视频素材,所以在实现精灵动画之前先介绍两个工具来帮助我们更好的实现需求.在这篇文章中,主要是介绍两个命令行工具来实现将一个短视频文件转化成一张 s ...
- 【FFH】Canvas实现帧动画及封装(OpenHarmony JS UI)
目录C Demo展示 实现思路 代码封装 canvas绘制图像 动画播放 代码调用 Demo展示 这里以Tom猫(多年前热门的移动端互动小游戏)为例: 实现思路 首先要了解帧动画播放的原理--正如我们 ...
- 微信小程序canvas绘制环形图(含动画)
页面版 效果图 思路 1.使用一个canvas绘制(带动画): 2.通过画弧线,设置线宽,来实现圆环效果: 3.计算每段圆弧的起始角度和终止角度,用递归做动画: 绘制完第一段圆弧块–>再绘制下一 ...
最新文章
- 【大作业】城市地铁线路最短路规划及路径输出(满分)
- 计算机组装与维护实例教程,计算机组装与维护案例教学-20210714101609.pdf-原创力文档...
- 腾讯告诉你小孩子的钱也有多好赚,一月花费25万不是梦!
- SAP 应用服务负载均衡的实现
- 朴素贝叶斯Naïve Bayes分类算法在Hadoop上的实现
- 软件工程基础-结对项目-WordCount(单词计数)
- 2015年 六·一 儿童节——我
- Modularity(模块化-CMD规范)
- java虚拟机的heap监狱_JVM垃圾回收--垃圾收集器总结
- MyBatis映射文件4(参数获取#{}和${}/select标签详解[返回类型为list])
- 【CSDN软考VIP资料群】让软考通过更容易,软考资料大全支持你软考!
- MDK5 安装指导书
- itext实现PDF模板套打java,生成电子合同电子收据电子发票
- 部署RPA如何实现投资回报率最大化?评估ROI的6大指标
- __wakeup()绕过
- linux驱动篇-touchscreen-精简版
- 【高等数学】二重积分交换积分次序,反三角函数主值区间选择
- Anaconda Prompt 用法全集
- pve万兆网卡驱动_教你:高性价比万兆群晖方案——万兆SFP网卡配置使用教程
- CIKM 2022最佳论文:融合图注意力机制与预训练语言模型的常识库补全
热门文章
- Windows如何安装Shell
- LLMs:《Orca: Progressive Learning from Complex Explanation Traces of GPT-4》翻译与解读
- DELL 3681 台式机 10代CPU 重装系统 UNEXPECTED_STORE_EXCEPTION 随机蓝屏
- 关于罗技M590鼠标蓝牙断线问题的解决方案
- 仿微博发现页吸顶效果
- 我的世界服务器物品禁止合成,我的世界禁止怪物生成代码 服务器禁止怪物
- 开学了,复旦老师教你如何玩转“0”“1”浪漫!| 人物志
- 火车浏览器抓取国家统计局省、市、区、街道
- iOS应用内截屏并分享(大致思路)
- 【Cryo】裴蜀定理 二元一次方程的整数解