javascript - 克服 HTML5 画布限制无法移动以前绘制的项目的最佳方法是什么?
问题描述
我正在尝试使用来自七个气象站的数据创建流线型风图。我试图拥有相同类型的地图是这个动画或这个动画。
我在网上读过文章,说它是如何工作的。下面引用它。
通常,浏览器中的这种可视化依赖于 Canvas 2D API,大致如下所示:
- 在屏幕上生成一组随机粒子位置并绘制粒子。
- 对于每个粒子,查询风数据以获取粒子在其当前位置的速度,并进行相应的移动。
- 将一小部分粒子重置到随机位置。这样可以确保风吹走的区域永远不会完全变空。
- 稍微淡化当前屏幕并在顶部绘制新定位的粒子。
我正在努力实现这一目标,但我不明白动画是如何做到以下...
- 在画布上移动点(因为您无法移动以前绘制的项目。)
- 调整了之前绘制的点的不透明度,使它们消失。
那么,他们是怎么做到的呢?非常感谢这位新手程序员的任何建议。
谢谢你。
解决方案
经过大量广泛的研究,我找到了一种方法来实现我正在寻找的东西。
- 因为我正在创建一条尾巴会消失的线,所以我能够使用此代码。
ctx.beginPath();
ctx.fillStyle = 'rgba(255, 255, 255, 0.25)';
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.closePath();
这会在画布上绘制一个不透明层,并允许线条缩短。
- 关于点,因为我正在画一条线,所以我可以用图像中的像素替换点。
推荐阅读
- wordpress - Wordpress 古腾堡块
- spatialite - EF Core 空间数据距离
- c# - AWSSDK 未生成新的 PreSigned URL(始终过期)
- angular - 我应该手动安装所有对等依赖项以删除 npm 警告吗?
- forms - 如何在 PERL-CGI 中读取多个复选框
- html - 当列的宽度不适合其容器时,如何垂直包装列?
- python - 如何使用 Python 从多个分类分布中采样
- javascript - 使用 thymeleaf 访问 JS 文件中的图像
- java - 正则表达式在java中的给定字符串语句中用星*屏蔽密码
- python - 如何有效地将函数应用于图像中每个像素的每个通道(用于颜色转换)?