浅谈基于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画一个阴阳八卦图
Mar 09 HTML / CSS
纯CSS3实现Material Design效果
Mar 09 HTML / CSS
用CSS3将你的设计带入下个高度
Aug 08 HTML / CSS
css3实现冲击波效果的示例代码
Jan 11 HTML / CSS
CSS3实现图片抽屉式效果的示例代码
Nov 06 HTML / CSS
CSS实现半透明边框与多重边框的场景分析
Nov 13 HTML / CSS
CSS实现聊天气泡效果
Apr 26 HTML / CSS
HTML5 用动画的表现形式装载图像
Mar 08 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
Jul 19 HTML / CSS
html5的websockets全双工通信详解学习示例
Feb 26 HTML / CSS
移动端Html5中百度地图的点击事件
Jan 31 HTML / CSS
amaze ui 的使用详细教程
Aug 19 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
yii框架中的Url生产问题小结
2012/01/16 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php验证session无效的解决方法
2014/11/04 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
Express.JS使用详解
2014/07/17 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
python 进程的几种创建方式详解
2019/08/29 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
饲料采购员岗位职责
2013/12/19 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
Python基于百度AI实现抓取表情包
2021/06/27 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers