Preet Shihn f945b75aea .
2018-03-11 21:49:52 -07:00
2018-03-11 18:59:03 -07:00
.
2018-03-11 21:47:32 -07:00
.
2018-03-11 21:47:32 -07:00
2018-03-11 18:59:03 -07:00
2018-03-01 17:58:09 -08:00
2018-03-01 17:58:09 -08:00
.
2018-03-09 00:01:59 -08:00
2018-03-11 18:59:03 -07:00
.
2018-03-11 21:49:52 -07:00

Rough.js

Rough.js is a light weight (~8k), Canvas based library that lets you draw in a sketchy, hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses. It also supports drawing SVG paths.

Rough.js sample

Install

The latest Rough.js can be downloaded from the dist folder.

or from npm:

npm install --save roughjs

Usage

Rough.js rectangle

const rc = rough.canvas(document.getElementById('canvas'));
rough.rectangle(10, 10, 200, 200); // x, y, width, height

Lines and Ellipses

Rough.js rectangle

rc.circle(80, 120, 50); // centerX, centerY, diameter
rc.ellipse(300, 100, 150, 80); // centerX, centerY, radiusX, radiusY
rc.line(80, 120, 300, 100); // x1, y1, x2, y2

Filling

Rough.js rectangle

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 hacure
});
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
});

Sketching style

Rough.js rectangle

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 Paths

Rough.js rectangle

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' });

API & Documentation

Full Rough.js API

License

MIT License (c) Preet Shihn

Description
No description provided
Readme MIT 6.5 MiB
Languages
HTML 57%
TypeScript 42.3%
JavaScript 0.7%