理解Canvas原理
Canvas原理
Canvas我们把它翻译成画布,从字面意思我们就可以知道,不就是可以在上面画东西的布吗。好像很简单,没什么好说的。先看图:
从这几幅图我们可以看到以下几点:
1.每个小方格我们可以看作一个像素点。
2.Canvas和Screen的长和宽决定他们的图像,数据存储都可以看作是矩形数组(或Map)集合的大小,存储图像的容器就长的是这个样子,它是矩形,也许有不规则的特殊屏,目前我只见过矩形的。
3.我们最终看到的画面是屏幕,Canvas的绘画数据最终是要填充给屏幕数据。
那么现在先来回顾一下计算机原理:
我不喜欢用太多的文字来解释,看看百科找来了这张图片,我相信能帮我们更好的去理解。
结合这张图,我们可以知道:输出设备它只读屏幕最终数据,Canvas数据只是写入屏幕数据的一个缓存。为什么数据不直接写入屏幕数据,后面会讲跳帧具体说明。
canvas有如下几个特点:
Canvas在线程中的位置及联系:
帧速率是每秒主线程重绘的次数,一般每秒>=24帧人眼就区分不了重绘刷新了,这样就可以看到一个连续的动画。
什么是跳帧?
当Canvas绘画所需的时间大于一次循环更新所需的时间,我们的下一帧就不绘画了,把时间留给上一帧绘画,以此保证上一帧绘画完整。如果两帧的时间还画不完说明fm需要调节。
我们程序常说的先更新后绘画,这个绘画都是程序绘画,并不是输出绘画。输出绘画和主线程是分离的,他是单独的一个线程。
转发自:https://blog.csdn.net/qq372072753/article/details/54629610
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?