WeZRender:微信小程序Canvas增强组件。
https://segmentfault.com/a/1190000007982805
WeZRender是一个微信小程序Canvas增强组件,基于HTML5 Canvas类库ZRender。
显示的效果图网址:
https://segmentfault.com/img/bVHEQZ?w=374&h=658
使用
WXML:
<canvas style="width: 375px; height: 600px;" canvas-id="line-canvas-1"></canvas>
JS:
var wezrender = require('../../lib/wezrender');zr = wezrender.zrender.init("line-canvas-1", 375, 600);
特性
数据驱动
利用WeZRender绘图,只需定义图形数据。
var circle = new wezrender.graphic.shape.Circle( shape: {cx: 50,cy: 50,r: 50},style: {fill: 'red',lineWidth: 10}});
丰富的图形选项
内置多种图形元素(圆形、椭圆、圆环、扇形、矩形、多边形、直线、曲线、心形、水滴、玫瑰线、Trochoid、文字、图片等),统一且丰富的图形属性充分满足个性化需求。
var droplet = new wezrender.graphic.shape.Droplet({shape: {cx: 200,cy: 300,width: 50,height: 50},style: {fill: '#ff9999'}});
强大的动画支持
提供promise式的动画接口和常用缓动函数,轻松实现各种动画需求。
var image = new wezrender.graphic.Image({style: {x: 0,y: 0,image: '../../images/koala.jpg',width: 32,height: 24,text: 'koala'}});zr.add(image);image.animateStyle(true).when(2000, {x: 350,y: 450,width: 360,height: 270,}).start();
易于扩展
分而治之的图形定义策略允许扩展图形元素。
var Pin = wezrender.graphic.Path.extend({type: 'pin',shape: {// x, y on the cuspx: 0,y: 0,width: 0,height: 0},buildPath: function (path, shape) {var x = shape.x;var y = shape.y;var w = shape.width / 5 * 3;// Height must be larger than widthvar h = Math.max(w, shape.height);var r = w / 2;// Dist on y with tangent point and circle centervar dy = r * r / (h - r);var cy = y - h + r + dy;var angle = Math.asin(dy / r);// Dist on x with tangent point and circle centervar dx = Math.cos(angle) * r;var tanX = Math.sin(angle);var tanY = Math.cos(angle);path.arc(x, cy, r,Math.PI - angle,Math.PI * 2 + angle);var cpLen = r * 0.6;var cpLen2 = r * 0.7;path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen,x, y - cpLen2,x, y);path.bezierCurveTo(x, y - cpLen2,x - dx + tanX * cpLen, cy + dy + tanY * cpLen,x - dx, cy + dy);path.closePath();}});
开源协议
本项目依据MIT开源协议发布,允许任何组织和个人免费使用。
项目地址
https://github.com/guyoung/We...
WeZRender:微信小程序Canvas增强组件。相关推荐
- 微信小程序canvas 绘画组件的使用,画图
微信小程序canvas 绘画组件的使用,画图 canvas 绘画组件 文章目录 微信小程序canvas 绘画组件的使用,画图 闲来没事写个画图的小工具吧,于是就用到了小程序的canvas组件 一.先来 ...
- 【微信小程序canvas】实现小程序手写板用户签名(附代码)
[微信小程序canvas]实现小程序手写板用户签名(附代码) 工作中公司业务需要的微信小程序用户签字功能 先看效果图: wxml <view class="wrapper"& ...
- 微信小程序 canvas type = 2d 绘制海报心得(包括怎么绘制图片和圆角图片和圆角矩形等)
微信小程序 canvas type=2d 使用心得 为了方便这里我封装成了一个component 然后说说怎么使用最新的方法(使用方法类似于html中的canvas可以进行参考)获取--canvas ...
- 微信小程序canvas画布新接口type为2D时drawImage方法的使用以及注意事项
微信小程序canvas画布自2.9.0 起支持一套新 Canvas 2D 接口(需指定 type 属性),但文档不全,从原canvas的api转变到新的api时遇到不少问题,现将新版与旧版的画布载入图 ...
- 微信小程序Canvas实现手写签名
微信小程序Canvas实现手写签名 功能描述 点击按钮显示弹窗,弹窗主体为签名板,底部两个按钮为清除和保存. 清除按钮:清空签名板 保存按钮:保存签名为图片,并关闭弹窗 关键点分析 Canvas实现手 ...
- 微信小程序 F2 图表组件
@antv/f2-canvas 微信小程序 F2 图表组件 安装 npm i @antv/f2-canvas 快速开始 下面我们就开始使用 f2-canvas 组件来绘制图表吧,这里假设用户已经初步了 ...
- 微信小程序-canvas绘制文字实现自动换行
微信小程序-canvas绘制文字实现自动换行 在使用微信小程序canvas绘制文字时,时常会遇到这样的问题:因为canvasContext.fillText参数为 我们只能设置文本的最大宽度,这就产生 ...
- 微信小程序_基础组件学习02
微信小程序_基础组件学习02 swiper组件 swiper是滑块容器,也就是手机端的轮播图. swiper组件有两部分组成swiper和swiper-item. swiper-item需要放在swi ...
- 微信小程序基于swiper组件的tab切换
代码地址如下: http://www.demodashi.com/demo/14010.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...
最新文章
- WMI技术介绍和应用——查询本地用户和组
- css超过两行显示为..._使用这些不太常用的CSS属性,布局效率上又提高了一个层次...
- python本地文件上传到网页_如何将文件上传到pythonweb服务器?
- java 获取第一帧_java获取视频的第一帧
- HSV(HSL)颜色空间及其应用
- 为什么牛在天上飞 因为有人在地上吹 谈高德地图说日活过亿
- 利用JavaScript在ASP.NET中动态生成系统菜单
- 2019.7.25作业
- 吉林大学计算机与科学专业排名,吉林大学专业排名 哪些王牌专业推荐就读
- 知识库的构建 6-1 语义网 Semantic Web
- 帝国CMS7.5.2QQ登录插件
- 【Redis】Redis 使用 redisson 做分布式锁 复盘 maven 依赖 netty 冲突
- 怎么在中国杀死SAP
- 好用的excel图片转表格的方法都在这了
- 逻辑删除还是物理删除
- G6实现家族族谱关系图
- joy数据向量化处理
- DSB matlab仿真
- centos+7虚拟机web服务器,CentOS7上搭建WEB服务器
- Spring Security + JWT实现权限管理