diff options
author | Ebus-at-dockstar <ebus@dockstar> | 2013-04-30 17:50:25 +0200 |
---|---|---|
committer | Ebus-at-dockstar <ebus@dockstar> | 2013-04-30 17:50:52 +0200 |
commit | a3f3c9d7a9bb5237628eaa30b550c9cc5d3dcdc2 (patch) | |
tree | 61e49ad91c7472a5836bd51224e7d1195eb16a28 /datastore-leveldb/wwwroot_ebus/lib/flot-0.7/jquery.flot.symbol.js | |
parent | 5e002f200691d5fd9c46ff645668b82e17c2261b (diff) | |
download | ebus-alt-a3f3c9d7a9bb5237628eaa30b550c9cc5d3dcdc2.tar.gz ebus-alt-a3f3c9d7a9bb5237628eaa30b550c9cc5d3dcdc2.zip |
wwwroot_ebus
Diffstat (limited to 'datastore-leveldb/wwwroot_ebus/lib/flot-0.7/jquery.flot.symbol.js')
-rw-r--r-- | datastore-leveldb/wwwroot_ebus/lib/flot-0.7/jquery.flot.symbol.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/datastore-leveldb/wwwroot_ebus/lib/flot-0.7/jquery.flot.symbol.js b/datastore-leveldb/wwwroot_ebus/lib/flot-0.7/jquery.flot.symbol.js new file mode 100644 index 0000000..a32fe31 --- /dev/null +++ b/datastore-leveldb/wwwroot_ebus/lib/flot-0.7/jquery.flot.symbol.js @@ -0,0 +1,70 @@ +/* +Flot plugin that adds some extra symbols for plotting points. + +The symbols are accessed as strings through the standard symbol +choice: + + series: { + points: { + symbol: "square" // or "diamond", "triangle", "cross" + } + } + +*/ + +(function ($) { + function processRawData(plot, series, datapoints) { + // we normalize the area of each symbol so it is approximately the + // same as a circle of the given radius + + var handlers = { + square: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.rect(x - size, y - size, size + size, size + size); + }, + diamond: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) + var size = radius * Math.sqrt(Math.PI / 2); + ctx.moveTo(x - size, y); + ctx.lineTo(x, y - size); + ctx.lineTo(x + size, y); + ctx.lineTo(x, y + size); + ctx.lineTo(x - size, y); + }, + triangle: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) + var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); + var height = size * Math.sin(Math.PI / 3); + ctx.moveTo(x - size/2, y + height/2); + ctx.lineTo(x + size/2, y + height/2); + if (!shadow) { + ctx.lineTo(x, y - height/2); + ctx.lineTo(x - size/2, y + height/2); + } + }, + cross: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.moveTo(x - size, y - size); + ctx.lineTo(x + size, y + size); + ctx.moveTo(x - size, y + size); + ctx.lineTo(x + size, y - size); + } + } + + var s = series.points.symbol; + if (handlers[s]) + series.points.symbol = handlers[s]; + } + + function init(plot) { + plot.hooks.processDatapoints.push(processRawData); + } + + $.plot.plugins.push({ + init: init, + name: 'symbols', + version: '1.0' + }); +})(jQuery); |