diff options
author | Yves Fischer <yvesf-git@xapek.org> | 2013-04-18 17:34:27 +0200 |
---|---|---|
committer | Yves Fischer <yvesf-git@xapek.org> | 2013-04-18 17:34:27 +0200 |
commit | 87f4134201f0a0840415aab531e32ca714bc7a36 (patch) | |
tree | cf148ecc810f92ca2e4c177498a56130806ed4e4 /datastore-leveldb/wwwroot/lib/flot-0.7/jquery.flot.symbol.js | |
parent | 7c8e064216cc672557cbf3892ff090490505e408 (diff) | |
download | ebus-alt-87f4134201f0a0840415aab531e32ca714bc7a36.tar.gz ebus-alt-87f4134201f0a0840415aab531e32ca714bc7a36.zip |
leveldb geht so
Diffstat (limited to 'datastore-leveldb/wwwroot/lib/flot-0.7/jquery.flot.symbol.js')
-rw-r--r-- | datastore-leveldb/wwwroot/lib/flot-0.7/jquery.flot.symbol.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/datastore-leveldb/wwwroot/lib/flot-0.7/jquery.flot.symbol.js b/datastore-leveldb/wwwroot/lib/flot-0.7/jquery.flot.symbol.js new file mode 100644 index 0000000..a32fe31 --- /dev/null +++ b/datastore-leveldb/wwwroot/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); |