JSFiddle - React, Tailwind, and code Playground
by icodeforlove
HTML
<link href='http://fonts.googleapis.com/css?family=Lato&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300' rel='stylesheet' type='text/css'>
<canvas id="canvas" width=1000 height=1000 style="-webkit-transform-origin: 0 0; -webkit-transform: scale(.5);"></canvas>
JavaScript
/*!
Simple <canvas> Word Cloud
by timdream
usage:
$('#canvas').wordCloud(settings); // draw word cloud on #canvas.
$.wordCloudSupported // return true if the browser checks out
$.miniumFontSize // return minium font size enforced by the browser
available settings
fontFamily: font list for text.
gridSize: 8,
ellipticity: ellipticity of the circle formed by word.
center: [x,y] of the center of the circle. Set false to use center of canvas.
drawMask: true to debug mask to show area covered by word.
maskColor: color of the debug mask.
maskGridWidth: width of the mask grid border.
wordColor: color for word, could be one of the following:
[CSS color value],
'random-dark', (default)
'random-light',
[function(word, weight, fontSize, radius, theta)]
backgroundColor: background to cover entire canvas or the detect against.
wait: wait N ms before drawing next word.
abortThreshold: abort and execute about() when the browser took more than N ms to draw a word. 0 to disable.
abort: abort handler.
weightFactor:
minSize: minium font size in pixel to draw (default: $.miniumFontSize / 2, larger than that is still look good using bilinear sampling in browser)
wordList: 2d array in for word list like [['w1', 12], ['w2', 6]]
clearCanvas: clear canvas before drawing. Faster than running detection on what's already on it.
fillBox: true will mark the entire box containing the word as filled - no subsequent smaller words can be fit in the gap.
shape: keyword or a function that represents polar equation r = fn(theta), available keywords:
'circle', (default)
'cardioid', (apple or heart shape curve, the most known polar equation)
'diamond', (alias: 'square'),
'triangle-forward',
'triangle', (alias: 'triangle-upright')
'pentagon',
'star'
*/
"use strict";
// http://jsfromhell.com/array/shuffle
Array.prototype.shuffle...