一个国产的 Canvas 2D 图形渲染引擎--LeaferJS

简介

官网:https://www.leaferjs.com/ui/guide/

今天我要向大家推荐的是一个免费开源的国产的 Canvas 2D 图形渲染引擎--LeaferJS。LeaferJS是一款HTML5 Canvas 2D图形渲染引擎,拥有瞬间创建100万 个图形的超强能力。相较于同类型产品它有着以下几点优势:

  1. 超快的创建速度,它可以在1.5秒内创建出100万个可交互矩形。相比于同类产品,LeaferJS的创建速度提升了10倍

  2. 极致的性能,LeaferJS创建100万个可交互矩形使用的内存约为350MB,远低于同类引擎。除此之外,LeaferJS的代码量也是极少的

  3. 丰富的表现力,LeaferJS提供了简洁易用的API,能够帮助开发者使用最少的代码实现包括渐变、图案填充、内外阴影、模糊等特性

简单应用

接下来就让我演示一下LeaferJS的一些简单应用,使用LeaferJS提供的API可以让复杂图形的绘制变得十分便捷

矩形

不同圆角的矩形代码

圆形

圆环扇形代码

多边形

 

 三边形代码

其他

 

Pen代码

渐变代码

 

以上就是我给大家带来有关LeaferJS的分享。

参考文章:LeaferJS 发布:开源、性能强悍的2D图形库icon-default.png?t=N6B9https://blog.csdn.net/yanbingjx/article/details/131468723?ops_request_misc=&request_id=&biz_id=102&utm_term=leaferjs&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-131468723.142^v90^control,239^v3^control&spm=1018.2226.3001.4187

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
随着html5 相关技术的兴起,因其跨平台的特性,和标准的日益完善。html5相关技术越来越多的被应用到前沿app的开发中,尤其是html5 小游戏的开发。 Laro 是一个基于html5 canvas的用于平面2d或者2.5d游戏制作的轻量级游戏引擎。 因为当前canvas作为画布形态的dom元素,并提供了大量关于矢量图以及texture绘制的api,但是由于其本身提供的api太过于底层,在类似游戏这一类交互性,逻辑性较为复杂的app时。需要开发者编写大量底层的api来实现本身的业务逻辑。 Laro出现的目的是为了简化使用canvas制作游戏时的api调用。同时提供了一套“有限状态机”的开发模式,这种模式在对于游戏这一类的典型的“事件驱动”的模型的开发上。能够很好的做到模块间的低耦合,利于开发者梳理整个开发逻辑。 Laro 游戏引擎目前已经完成了游戏开发中所需要的模块和api的封装,并有一些实际的Demo和TestCase供使用者参考。而且随后会结合这个引擎整理出一套用于html5 小游戏开发的可视化编辑工具。 旨在帮助开发者更快更容易的搭建一款小游戏为目的。 目前已经开源到github (https://github.com/AlloyTeam/Laro) 我们团队希望通过Laro的不断完善,能够帮助更多的html5 小游戏开发者以更快的速度,更优的质量完成 html5小游戏 产业化的开发。 Version Log 0.1 - 基础模块搭建 0.2 - 融入jcanvas,配合鼠标事件处理 0.3 - 加强状态机模块 查看以下demo最好使用chrome  : ) http://hongru.github.com/proj/laro/examples/emberwind/ http://hongru.github.com/proj/laro/examples/typeshot/index.html http://hongru.github.com/proj/laro/examples/jxhome/ http://heroes.github.com/world-of-heroes/development/
为了兼容canvas,我们需要使用HTML5canvas元素来绘制图形。同时,为了实现谷歌渲染引擎的功能,我们可以使用WebGL来进行高性能的图形渲染。 具体实现步骤如下: 1. 创建一个canvas元素,并获取其上下文对象。 ```javascript const canvas = document.createElement('canvas'); const context = canvas.getContext('webgl'); ``` 2. 创建一个着色器程序,并编译链接顶点着色器和片元着色器。 ```javascript const vertexShaderSource = ` attribute vec4 a_Position; void main() { gl_Position = a_Position; } `; const fragmentShaderSource = ` precision mediump float; void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); } `; const vertexShader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vertexShader, vertexShaderSource); gl.compileShader(vertexShader); const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fragmentShader, fragmentShaderSource); gl.compileShader(fragmentShader); const program = gl.createProgram(); gl.attachShader(program, vertexShader); gl.attachShader(program, fragmentShader); gl.linkProgram(program); ``` 3. 设置顶点数据,并绑定到顶点着色器中。 ```javascript const vertices = new Float32Array([ -0.5, -0.5, 0.5, -0.5, 0.0, 0.5, ]); const vertexBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer); gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW); const a_Position = gl.getAttribLocation(program, 'a_Position'); gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0); gl.enableVertexAttribArray(a_Position); ``` 4. 渲染图形。 ```javascript gl.clearColor(0, 0, 0, 1); gl.clear(gl.COLOR_BUFFER_BIT); gl.useProgram(program); gl.drawArrays(gl.TRIANGLES, 0, 3); ``` 这样就可以创建一个基本的兼容canvas的谷歌渲染引擎了。需要注意的是,这只是一个简单的例子,实际应用中需要考虑更多的细节和复杂的图形渲染算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值