浅谈基于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实现针线缝合效果(图解步骤)
Feb 04 HTML / CSS
css3实现的下拉菜单效果示例
Jan 22 HTML / CSS
css3的transform造成z-index无效解决方案
Dec 04 HTML / CSS
CSS3 RGBA色彩模式使用实例讲解
Apr 26 HTML / CSS
CSS3实现背景透明文字不透明的示例代码
Jun 25 HTML / CSS
html5利用canvas绘画二级树形结构图的示例
Sep 27 HTML / CSS
HTML5中canvas中的beginPath()和closePath()的重要性
Aug 24 HTML / CSS
html5 音乐播放器 audio 标签使用概述
Jul 15 HTML / CSS
用html5实现语音搜索框的方法
Mar 18 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
Mar 07 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
Mar 15 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
Dec 07 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连接access数据库
2015/03/27 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
javascript 节点排序 2
2011/01/31 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
小程序实现多列选择器
2019/02/15 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
使用python加密自己的密码
2015/08/04 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
python类共享变量操作
2020/09/03 Python
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
瑞典耳机品牌:URBANISTA
2019/12/03 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
公务员个人自我评价分享
2013/11/06 职场文书
研发工程师的岗位职责
2013/11/18 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
2015年销售工作总结范文
2015/03/30 职场文书