中学生开源的前端动画引擎 NewCar 加入 Dromara 社区
关于作者
我与编程
居住在安徽六安,是一个高中生,目前正在读高一
我从六年级的那个寒假,因为学校组织的一场编程公开课而开始玩scratch,在六年级毕业的那个暑假开始学习Python,然后遇到了LStar,也是我遇到的第一个同龄计算机爱好者,我们一起创建了BugDuck开源团队。可以肯定的说的是,那场公开课影响了我的一生
我做的第一个还算成功的项目是一个叫tntjs的前端框架,并把宣传片放在了B站上,结果引起了两派人的轰动,一派认为我们只是在学习而已,另一派认为我们山寨了Vue,当时正值BugDuck团队的内部矛盾,最后分裂了(从三十多人到不到五人),tntjs就没有维护下去了
初三上学期,我一个学期没有碰代码,一部分原因是因为要中考了,另一部分原因是父母没收了我的电脑,但这段时间一直在构思我的新项目。当我看到老师电脑上那些老旧的flash课件,我就想着造一个动画引擎,并给他命名为newcar,于是在寒假的时候开始写newcar。newcar项目地址:https://github.com/dromara/newcar,文档地址:newcar.js.org
总的来说,我追求技术的初心始终没变,但是路上坎坎磕磕。
我与英语
从小学开始,我就摆出了一副不喜欢英语的样子,满分100只能考20多,还全都是蒙的,那么我是如何变成一个英语爱好者的呢?
上了初中之后,我便开始从头学英语,但是内心还是很抵触;到了初二毕业,我只能考个及格分,直到我找到了一个叫”英语兔“的up主,看了他的课之后,我便阴差阳错的喜欢上了英语。从那以后,我每天坚持背10个英语单词,英语能力也突飞猛进,截至今日,英语已经变成了我的强项
我的爱好
- 编程:这不是肯定的嘛
- 英语:这也一样
- 电子技术:很菜,连晶体管都玩不好
- 音乐:从小学二年级开始学习架子鼓,到初一就不学了,不过我还是很喜欢penbeat的,以及听电音,特别喜欢V神的The World Has A Heartbeat
- 化学实验:很菜,只会做一些简单的,比如制取盐酸啥的
- 打音游:很菜,平时主要玩Phigros和Dancing Line
Newcar介绍
Newcar是一个现代化的前端动画引擎,基于CanvasKit-WASM,在Skia的WebAssembly版本的加持下,既保证了它的性能,又带来了强大的绘图功能
特点
- 高度可自定义化的API
- 链式语法,区别于传统动画引擎和游戏引擎需要将物体保存为变量的方式,链式语法会让开发效率更高
- 拥有类似于Vue的diff算法的内核,进一步保证了动画的效率和“按需更新”的进行
- 多平台,可以在现代支持WebAssembly的浏览器上和nodejs上运行
未来计划
- 可以从项目根目录下的mods目录看,目前newcar已经发布了数学模块(包括数轴,平面直角坐标系,函数图像等),未发布的有:几何模块,markdown模块,动态图表模块,ui模块,物理模块,思维导图模块等等
- 未来将推出事件系统,让他变成动画游戏二合一引擎
- 一些小的东西比如动画树
背景故事
上数学课时,老师掏出了他清朝老幻灯片进行讲解,结果里面的flash课件打不开,因为电脑没有安装flash。于是我就在想,既然flash功能那么强大但没落了,我为什么不自己写一个类似于flash的库呢?说干就干,在2022年9月份开始思考,一直到12月份开始编写代码
刚开始的newcar十分简陋,甚至是基于原生Canvas的,性能非常差,动画编写的步骤也很繁杂。后来的newcar除了模仿flash,也集合了Manim等动画引擎及svg动画的设计原理。目前的Newcar的最新版本是重写重设计后的版本,但是未来会有更强大的功能
- 文档:newcar.js.org/zh
- GitHub: github.com/dromara/newcar
- b站:BugDuck开源团队
- Twitter: @bugduckteam

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
DBeaver 24.0.3 发布
DBeaver 是一个免费开源的通用数据库工具,适用于开发人员和数据库管理员。DBeaver 24.0.3现已发布,更新内容如下: General: 支持从 Toad for Oracle 迁移 日志文件中的敏感信息现已被屏蔽 SQL Editor: 添加了“Blank line as statement delimiter”选项的智能模式(默认启用) 添加了Sub-select autocompletion INSERT 查询中列引用的高亮显示已修复 修复了打开大纲查看器的问题 macOS 上隐藏文本的问题已修复 Connectivity: 添加了保存用户凭据时的空间裁剪功能 修复了保存缺少 AWS 私钥的 SSH 配置的问题 修复了通过 SSH 通道重新连接的问题 ER Diagrams:外键表示已修复 AI: AI 助手默认开启 修复了数据库元数据收集问题 仪表板:修复了版本更新后自定义仪表板消失的问题 更新说明:https://dbeaver.io/2024/04/21/dbeaver-24-0-3/
- 下一篇
如何使用 Webhook 节点实现数据同步和事件触发
Webhook是什么? 顾名思义,Hook是钩子,那么Webhook 就是一个基于 HTTP 协议的钩子。API和Webhook的区别是,API是主动调用服务,而Webhook是当事件发生时反向调用。 各种服务就可以用Webhook的形式进行集成。 Webhook实现细节 Webhook本质是当上游系统事件触发时向下游系统发送的一个HTTP请求。 众所周知,HTTP请求结构如上图所示。建木SaaS版流水线提供的Webhook非常灵活!可以接收并适配市面上绝大多数的Webhook请求。那么它是如何做的这一点的呢? 首先,我们将所有的HTTP请求保存为Json格式,然后用户就可以使用js/ts语法进行提取,根据提取的位置不同,提取规则如下: 参数类型 提取方式 说明 Header header.xxx或header.['xxx-xxx'] 提取请求头中的参数,其中header为关键字,表示请求头 Query query.xxx或query.['xxx-xxx'] 提取QueryString中的参数,其中query为关键字,表示url上的参数 Body body.json.xxx或body....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果