浅谈基于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模拟jq点击事件的实例代码
Jul 06 HTML / CSS
纯CSS改变webkit内核浏览器的滚动条样式
Apr 17 HTML / CSS
使用css3实现的tab选项卡代码分享
Dec 09 HTML / CSS
localStorage 设置过期时间的方法实现
Dec 21 HTML / CSS
html5指南-3.如何实现html元素拖拽功能
Jan 07 HTML / CSS
一款html5 canvas实现的图片玻璃碎片特效
Sep 11 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
Jan 01 HTML / CSS
HTML页面中添加Canvas标签示例
Jan 01 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
Apr 26 HTML / CSS
html5使用canvas压缩图片的示例代码
Sep 11 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
Jul 31 HTML / CSS
html5自定义video标签的海报与播放按钮功能
Dec 04 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之变量、常量学习笔记
2008/03/27 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
JQuery样式与属性设置方法分析
2019/12/07 jQuery
python函数参数*args**kwargs用法实例
2013/12/04 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
Python中正则表达式详解
2017/05/17 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
店长岗位的工作内容
2013/11/12 职场文书
财务会计应届生求职信
2013/11/24 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
工程管理专业个人求职信范文
2013/12/07 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
同居协议书范本
2014/04/23 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
商务信函英语问候语
2015/11/10 职场文书