ICC-Profile
view release on metacpan or search on metacpan
lib/ICC/Javascripts/rgraph/RGraph.common.core.js view on Meta::CPAN
* @param number cy The centery coordinate
* @param number x The X coordinate (eg the mouseX if coming from a click)
* @param number y The Y coordinate (eg the mouseY if coming from a click)
* @return number The relevant angle (measured in in RADIANS)
*/
RG.getAngleByXY = function (cx, cy, x, y)
{
var angle = ma.atan((y - cy) / (x - cx));
angle = ma.abs(angle)
if (x >= cx && y >= cy) {
angle += RG.TWOPI;
} else if (x >= cx && y < cy) {
angle = (RG.HALFPI - angle) + (RG.PI + RG.HALFPI);
} else if (x < cx && y < cy) {
angle += RG.PI;
} else {
angle = RG.PI - angle;
}
/**
* Upper and lower limit checking
*/
if (angle > RG.TWOPI) {
angle -= RG.TWOPI;
}
return angle;
};
/**
* This function returns the distance between two points. In effect the
* radius of an imaginary circle that is centered on x1 and y1. The name
* of this function is derived from the word "Hypoteneuse", which in
* trigonmetry is the longest side of a triangle
*
* @param number x1 The original X coordinate
* @param number y1 The original Y coordinate
* @param number x2 The target X coordinate
* @param number y2 The target Y coordinate
*/
RG.getHypLength = function (x1, y1, x2, y2)
{
var ret = ma.sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1)));
return ret;
};
/**
* This function gets the end point (X/Y coordinates) of a given radius.
* You pass it the center X/Y and the radius and this function will return
* the endpoint X/Y coordinates.
*
* @param number cx The center X coord
* @param number cy The center Y coord
* @param number r The lrngth of the radius
*/
RG.getRadiusEndPoint = function (cx, cy, angle, radius)
{
var x = cx + (ma.cos(angle) * radius);
var y = cy + (ma.sin(angle) * radius);
return [x, y];
};
/**
* This installs all of the event listeners
*
* @param object obj The chart object
*/
RG.installEventListeners =
RG.InstallEventListeners = function (obj)
{
var prop = obj.properties;
/**
* Don't attempt to install event listeners for older versions of MSIE
*/
if (RG.ISOLD) {
return;
}
/**
* If this function exists, then the dynamic file has been included.
*/
if (RG.installCanvasClickListener) {
RG.installWindowMousedownListener(obj);
RG.installWindowMouseupListener(obj);
RG.installCanvasMousemoveListener(obj);
RG.installCanvasMouseupListener(obj);
RG.installCanvasMousedownListener(obj);
RG.installCanvasClickListener(obj);
} else if ( RG.hasTooltips(obj)
|| prop['chart.adjustable']
|| prop['chart.annotatable']
|| prop['chart.contextmenu']
|| prop['chart.resizable']
|| prop['chart.key.interactive']
|| prop['chart.events.click']
|| prop['chart.events.mousemove']
|| typeof obj.onclick === 'function'
|| typeof obj.onmousemove === 'function'
) {
alert('[RGRAPH] You appear to have used dynamic features but not included the file: RGraph.common.dynamic.js');
}
};
( run in 1.083 second using v1.01-cache-2.11-cpan-524268b4103 )