浅谈基于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新增颜色表示方式分享
Apr 15 HTML / CSS
一款纯css3实现的漂亮的404页面的实例教程
Nov 27 HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
Sep 06 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
May 12 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
Aug 28 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
Apr 23 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
May 07 HTML / CSS
详解HTML5 data-* 自定义属性
Jan 24 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
Apr 23 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
使用SVG实现提示框功能的示例代码
Jun 05 HTML / CSS
CSS作用域(样式分割)的使用汇总
Nov 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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
eclipse php wamp配置教程
2016/06/30 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
vue.js数据绑定操作详解
2018/04/23 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
Python格式化css文件的方法
2015/03/10 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
使用Python写一个小游戏
2018/04/02 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
高中毕业自我鉴定范文
2013/10/02 职场文书
学院领导推荐信
2013/10/30 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
撤诉状格式范本
2015/05/19 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技