浅谈基于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中Transform动画属性用法详解
Jul 04 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
css3选择器基本介绍
Dec 15 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
Sep 06 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
Jan 08 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
Apr 10 HTML / CSS
深入了解canvas在移动端绘制模糊的问题解决
Apr 30 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
CSS3实现的文字弹出特效
Apr 16 HTML / CSS
CSS+HTML 实现顶部导航栏功能
Aug 30 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字符串的连接的简单实例
2013/12/30 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
轮播图组件js代码
2016/08/08 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
跟老齐学Python之复习if语句
2014/10/02 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
Python实现TCP通信的示例代码
2019/09/09 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Python3 shutil(高级文件操作模块)实例用法总结
2020/02/19 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
销售总监工作职责
2013/11/21 职场文书
小学红领巾中秋节广播稿
2014/01/13 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
电视购物广告词
2014/03/19 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
民主生活会意见
2015/06/05 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python