PDF rausgenommen
This commit is contained in:
166
msd2/tracking/piwik/libs/jqplot/jqplot.shapeRenderer.js
Normal file
166
msd2/tracking/piwik/libs/jqplot/jqplot.shapeRenderer.js
Normal file
@ -0,0 +1,166 @@
|
||||
/**
|
||||
* jqPlot
|
||||
* Pure JavaScript plotting plugin using jQuery
|
||||
*
|
||||
* Version: @VERSION
|
||||
* Revision: @REVISION
|
||||
*
|
||||
* Copyright (c) 2009-2013 Chris Leonello
|
||||
* jqPlot is currently available for use in all personal or commercial projects
|
||||
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
||||
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
||||
* choose the license that best suits your project and use it accordingly.
|
||||
*
|
||||
* Although not required, the author would appreciate an email letting him
|
||||
* know of any substantial use of jqPlot. You can reach the author at:
|
||||
* chris at jqplot dot com or see http://www.jqplot.com/info.php .
|
||||
*
|
||||
* If you are feeling kind and generous, consider supporting the project by
|
||||
* making a donation at: http://www.jqplot.com/donate.php .
|
||||
*
|
||||
* sprintf functions contained in jqplot.sprintf.js by Ash Searle:
|
||||
*
|
||||
* version 2007.04.27
|
||||
* author Ash Searle
|
||||
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
||||
* http://hexmen.com/js/sprintf.js
|
||||
* The author (Ash Searle) has placed this code in the public domain:
|
||||
* "This code is unrestricted: you are free to use it however you like."
|
||||
*
|
||||
*/
|
||||
(function($) {
|
||||
// class: $.jqplot.shapeRenderer
|
||||
// The default jqPlot shape renderer. Given a set of points will
|
||||
// plot them and either stroke a line (fill = false) or fill them (fill = true).
|
||||
// If a filled shape is desired, closePath = true must also be set to close
|
||||
// the shape.
|
||||
$.jqplot.ShapeRenderer = function(options){
|
||||
|
||||
this.lineWidth = 1.5;
|
||||
// prop: linePattern
|
||||
// line pattern 'dashed', 'dotted', 'solid', some combination
|
||||
// of '-' and '.' characters such as '.-.' or a numerical array like
|
||||
// [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line,
|
||||
// [1, 10, 20, 10] to draw a dot-dash line, and so on.
|
||||
this.linePattern = 'solid';
|
||||
// prop: lineJoin
|
||||
// How line segments of the shadow are joined.
|
||||
this.lineJoin = 'miter';
|
||||
// prop: lineCap
|
||||
// how ends of the shadow line are rendered.
|
||||
this.lineCap = 'round';
|
||||
// prop; closePath
|
||||
// whether line path segment is closed upon itself.
|
||||
this.closePath = false;
|
||||
// prop: fill
|
||||
// whether to fill the shape.
|
||||
this.fill = false;
|
||||
// prop: isarc
|
||||
// whether the shadow is an arc or not.
|
||||
this.isarc = false;
|
||||
// prop: fillRect
|
||||
// true to draw shape as a filled rectangle.
|
||||
this.fillRect = false;
|
||||
// prop: strokeRect
|
||||
// true to draw shape as a stroked rectangle.
|
||||
this.strokeRect = false;
|
||||
// prop: clearRect
|
||||
// true to cear a rectangle.
|
||||
this.clearRect = false;
|
||||
// prop: strokeStyle
|
||||
// css color spec for the stoke style
|
||||
this.strokeStyle = '#999999';
|
||||
// prop: fillStyle
|
||||
// css color spec for the fill style.
|
||||
this.fillStyle = '#999999';
|
||||
|
||||
$.extend(true, this, options);
|
||||
};
|
||||
|
||||
$.jqplot.ShapeRenderer.prototype.init = function(options) {
|
||||
$.extend(true, this, options);
|
||||
};
|
||||
|
||||
// function: draw
|
||||
// draws the shape.
|
||||
//
|
||||
// ctx - canvas drawing context
|
||||
// points - array of points for shapes or
|
||||
// [x, y, width, height] for rectangles or
|
||||
// [x, y, radius, start angle (rad), end angle (rad)] for circles and arcs.
|
||||
$.jqplot.ShapeRenderer.prototype.draw = function(ctx, points, options) {
|
||||
ctx.save();
|
||||
var opts = (options != null) ? options : {};
|
||||
var fill = (opts.fill != null) ? opts.fill : this.fill;
|
||||
var closePath = (opts.closePath != null) ? opts.closePath : this.closePath;
|
||||
var fillRect = (opts.fillRect != null) ? opts.fillRect : this.fillRect;
|
||||
var strokeRect = (opts.strokeRect != null) ? opts.strokeRect : this.strokeRect;
|
||||
var clearRect = (opts.clearRect != null) ? opts.clearRect : this.clearRect;
|
||||
var isarc = (opts.isarc != null) ? opts.isarc : this.isarc;
|
||||
var linePattern = (opts.linePattern != null) ? opts.linePattern : this.linePattern;
|
||||
var ctxPattern = $.jqplot.LinePattern(ctx, linePattern);
|
||||
ctx.lineWidth = opts.lineWidth || this.lineWidth;
|
||||
ctx.lineJoin = opts.lineJoin || this.lineJoin;
|
||||
ctx.lineCap = opts.lineCap || this.lineCap;
|
||||
ctx.strokeStyle = (opts.strokeStyle || opts.color) || this.strokeStyle;
|
||||
ctx.fillStyle = opts.fillStyle || this.fillStyle;
|
||||
ctx.beginPath();
|
||||
if (isarc) {
|
||||
ctx.arc(points[0], points[1], points[2], points[3], points[4], true);
|
||||
if (closePath) {
|
||||
ctx.closePath();
|
||||
}
|
||||
if (fill) {
|
||||
ctx.fill();
|
||||
}
|
||||
else {
|
||||
ctx.stroke();
|
||||
}
|
||||
ctx.restore();
|
||||
return;
|
||||
}
|
||||
else if (clearRect) {
|
||||
ctx.clearRect(points[0], points[1], points[2], points[3]);
|
||||
ctx.restore();
|
||||
return;
|
||||
}
|
||||
else if (fillRect || strokeRect) {
|
||||
if (fillRect) {
|
||||
ctx.fillRect(points[0], points[1], points[2], points[3]);
|
||||
}
|
||||
if (strokeRect) {
|
||||
ctx.strokeRect(points[0], points[1], points[2], points[3]);
|
||||
ctx.restore();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (points && points.length){
|
||||
var move = true;
|
||||
for (var i=0; i<points.length; i++) {
|
||||
// skip to the first non-null point and move to it.
|
||||
if (points[i][0] != null && points[i][1] != null) {
|
||||
if (move) {
|
||||
ctxPattern.moveTo(points[i][0], points[i][1]);
|
||||
move = false;
|
||||
}
|
||||
else {
|
||||
ctxPattern.lineTo(points[i][0], points[i][1]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
move = true;
|
||||
}
|
||||
}
|
||||
if (closePath) {
|
||||
ctxPattern.closePath();
|
||||
}
|
||||
if (fill) {
|
||||
ctx.fill();
|
||||
}
|
||||
else {
|
||||
ctx.stroke();
|
||||
}
|
||||
}
|
||||
ctx.restore();
|
||||
};
|
||||
})(jQuery);
|
Reference in New Issue
Block a user