浅谈基于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之UI元素状态伪类选择器实例演示
Aug 11 HTML / CSS
css3实现信纸/同学录效果的示例代码
Dec 11 HTML / CSS
IE滤镜与CSS3效果(详细整理分享)
Jan 25 HTML / CSS
CSS3打造磨砂玻璃背景效果
Sep 28 HTML / CSS
纯CSS3制作页面切换效果的实例代码
May 30 HTML / CSS
html5调用摄像头功能的实现代码
May 07 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
May 07 HTML / CSS
基于Html5实现的语音搜索功能
May 13 HTML / CSS
使用html5 canvas绘制圆环动效
Jun 03 HTML / CSS
AmazeUI 面板的实现示例
Aug 17 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
Aug 21 HTML / CSS
Html5大屏数据可视化开发的实现
Jun 11 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
收集的php编写大型网站问题集
2007/03/06 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
ext 代码生成器
2009/08/07 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
js实现登录与注册界面
2017/11/01 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
keras 读取多标签图像数据方式
2020/06/12 Python
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
临床医学大学生求职信
2013/09/28 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
保护环境标语
2014/06/09 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
母亲节寄语大全
2015/02/27 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android