浅谈基于Canvas的手绘风格图形库Rough.js


Posted in HTML / CSS onMarch 19, 2018

前言

推荐一个基于Canvas的手绘风格图形JS库。

Rough.js

Rough.js是一个轻量的(大约8k),基于Canvas的可以绘制出粗略的手绘风格库。

提供绘制线条、曲线、弧线、多边形、圆形和椭圆的基础能力,同时支持绘制SVG路径。

浅谈基于Canvas的手绘风格图形库Rough.js

Github:https://github.com/pshihn/rough

安装

下载链接:https://github.com/pshihn/rough/tree/master/dist

NPM

npm install --save roughjs

使用方法

浅谈基于Canvas的手绘风格图形库Rough.js

const rc = rough.canvas(document.getElementById('canvas'));
rc.rectangle(10, 10, 200, 200); // x, y, width, height

线条和椭圆

浅谈基于Canvas的手绘风格图形库Rough.js

rc.circle(80, 120, 50); // centerX, centerY, diameter
rc.ellipse(300, 100, 150, 80); // centerX, centerY, width, height
rc.line(80, 120, 300, 100); // x1, y1, x2, y2

填充

浅谈基于Canvas的手绘风格图形库Rough.js

rc.circle(50, 50, 80, { fill: 'red' }); // fill with red hachure
rc.rectangle(120, 15, 80, 80, { fill: 'red' });
rc.circle(50, 150, 80, {
  fill: "rgb(10,150,10)",
  fillWeight: 3 // thicker lines for hachure
});
rc.rectangle(220, 15, 80, 80, {
  fill: 'red',
  hachureAngle: 60, // angle of hachure,
  hachureGap: 8
});
rc.rectangle(120, 105, 80, 80, {
  fill: 'rgba(255,0,200,0.2)',
  fillStyle: 'solid' // solid fill
});

草绘风格

浅谈基于Canvas的手绘风格图形库Rough.js

rc.rectangle(15, 15, 80, 80, { roughness: 0.5, fill: 'red' });
rc.rectangle(120, 15, 80, 80, { roughness: 2.8, fill: 'blue' });
rc.rectangle(220, 15, 80, 80, { bowing: 6, stroke: 'green', strokeWidth: 3 });

SVG 路径

浅谈基于Canvas的手绘风格图形库Rough.js

rc.path('M80 80 A 45 45, 0, 0, 0, 125 125 L 125 80 Z', { fill: 'green' });
rc.path('M230 80 A 45 45, 0, 1, 0, 275 125 L 275 80 Z', { fill: 'purple' });
rc.path('M80 230 A 45 45, 0, 0, 1, 125 275 L 125 230 Z', { fill: 'red' });
rc.path('M230 230 A 45 45, 0, 1, 1, 275 275 L 275 230 Z', { fill: 'blue' });

简单的SVG路径

浅谈基于Canvas的手绘风格图形库Rough.js

结合Web Workers

如果在网页中有import Workly 这个Web Workers库,RoughJS会自动将所有的操作转移至web workers,来释放UI主线程。这个在使用RoughJS来创建复杂绘图(如地图)时非常有用。详细阅读相关内容 。

<script src="https://cdn.jsdelivr.net/gh/pshihn/workly/dist/workly.min.js"></script>
<script src="../../dist/rough.min.js"></script>

浅谈基于Canvas的手绘风格图形库Rough.js

例子

https://github.com/pshihn/rough/wiki/Examples

API及文档

https://github.com/pshihn/rough/wiki

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
纯CSS3实现图片无间断轮播效果
Aug 25 HTML / CSS
HTML+CSS3 模仿Windows7 桌面效果
Jun 17 HTML / CSS
HTML5时代CSS设置漂亮字体取代图片
Sep 04 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 HTML / CSS
简单几步用纯CSS3实现3D翻转效果
Jan 17 HTML / CSS
html5使用html2canvas实现浏览器截图的示例
Aug 31 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
Jan 30 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
Jul 13 HTML / CSS
canvas环形倒计时组件的示例代码
Jun 14 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
Jun 03 HTML / CSS
box-shadow单边阴影的实现
May 21 HTML / CSS
基于HTML5 WebGL的3D机房的示例
Mar 16 #HTML / CSS
Html5 APP中监听返回事件处理的方法示例
Mar 15 #HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
Mar 15 #HTML / CSS
微信html5页面调用第三方位置导航的示例
Mar 14 #HTML / CSS
微信端html5页面调用分享接口示例
Mar 14 #HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
Mar 13 #HTML / CSS
配置H5的滚动条样式的示例代码
Mar 09 #HTML / CSS
You might like
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
ES6的新特性概览
2016/03/10 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python Tkinter的图片刷新实例
2019/06/14 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
上海微创软件面试题
2012/06/14 面试题
自我鉴定怎么写
2013/12/05 职场文书
库房主管岗位职责
2013/12/31 职场文书
医院搬迁方案
2014/06/14 职场文书
2015年招聘工作总结
2014/12/12 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
导游词之江西赣州
2019/10/15 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang