o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1379639354.38502: @value"{I" class:EFI"ProcessedAsset;FI"logical_path;FI"&heart/flot/jquery.flot.symbols.js;FI" pathname;FI"g/Users/cwabbott/work/innovationtime/heart/app/assets/javascripts/heart/flot/jquery.flot.symbols.js;FI"content_type;FI"application/javascript;FI" mtime;FI"2013-09-06T09:46:51+09:00;FI" length;Fi¦ I" digest;F"%be9e1419f7306f0d3fea306656d4cc72I" source;FI"¦ /* 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); }, heart: 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 = 1.5 * radius * Math.sqrt(Math.PI / 2); ctx.moveTo(x + size, y); ctx.lineTo(x, y + size);//bottom-most point ctx.lineTo(x - size, y);//left-most middle point ctx.lineTo(x - size, y - size/2);//left-most top point ctx.lineTo(x - size + size/4, y - size);//top-most left point ctx.lineTo(x - size/3, y - size);//top-left middle point (starts descent into heart from top-left toward right-middle) ctx.lineTo(x, y - size/3);//middle point of heart from top ctx.lineTo(x + size/3, y - size);//top-right middle point (starts descent into heart from top-right toward left-middle) ctx.lineTo(x + size - size/4, y - size);//top-most right point ctx.lineTo(x + size, y - size/2);//right-most top point ctx.lineTo(x + size, y);//right-most middle point } } 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); ;FI"dependency_digest;F"%ce27ae0553865395c1e50664fecb7d03I"required_paths;F[I"g/Users/cwabbott/work/innovationtime/heart/app/assets/javascripts/heart/flot/jquery.flot.symbols.js;FI"dependency_paths;F[{I" path;FI"g/Users/cwabbott/work/innovationtime/heart/app/assets/javascripts/heart/flot/jquery.flot.symbols.js;FI" mtime;FI"2013-09-06T09:46:51+09:00;FI" digest;F"%beec4db87f0727ac97b4f605486632faI" _version;F"%ffd318ca8b794f42f5029101c2cf5d91