添加项目文件。
This commit is contained in:
@ -0,0 +1,115 @@
|
||||
/* *
|
||||
* (c) 2010-2018 Torstein Honsi
|
||||
*
|
||||
* License: www.highcharts.com/license
|
||||
*/
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @typedef Highcharts.RadianAngles
|
||||
*
|
||||
* @property {number} start
|
||||
*
|
||||
* @property {number} end
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import H from '../parts/Globals.js';
|
||||
import '../parts/Utilities.js';
|
||||
|
||||
var deg2rad = H.deg2rad,
|
||||
isNumber = H.isNumber,
|
||||
pick = H.pick,
|
||||
relativeLength = H.relativeLength;
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @mixin Highcharts.CenteredSeriesMixin
|
||||
*/
|
||||
H.CenteredSeriesMixin = {
|
||||
|
||||
/**
|
||||
* Get the center of the pie based on the size and center options relative
|
||||
* to the plot area. Borrowed by the polar and gauge series types.
|
||||
*
|
||||
* @private
|
||||
* @function Highcharts.CenteredSeriesMixin.getCenter
|
||||
*
|
||||
* @return {Array<number>}
|
||||
*/
|
||||
getCenter: function () {
|
||||
|
||||
var options = this.options,
|
||||
chart = this.chart,
|
||||
slicingRoom = 2 * (options.slicedOffset || 0),
|
||||
handleSlicingRoom,
|
||||
plotWidth = chart.plotWidth - 2 * slicingRoom,
|
||||
plotHeight = chart.plotHeight - 2 * slicingRoom,
|
||||
centerOption = options.center,
|
||||
positions = [
|
||||
pick(centerOption[0], '50%'),
|
||||
pick(centerOption[1], '50%'),
|
||||
options.size || '100%',
|
||||
options.innerSize || 0
|
||||
],
|
||||
smallestSize = Math.min(plotWidth, plotHeight),
|
||||
i,
|
||||
value;
|
||||
|
||||
for (i = 0; i < 4; ++i) {
|
||||
value = positions[i];
|
||||
handleSlicingRoom = i < 2 || (i === 2 && /%$/.test(value));
|
||||
|
||||
// i == 0: centerX, relative to width
|
||||
// i == 1: centerY, relative to height
|
||||
// i == 2: size, relative to smallestSize
|
||||
// i == 3: innerSize, relative to size
|
||||
positions[i] = relativeLength(
|
||||
value,
|
||||
[plotWidth, plotHeight, smallestSize, positions[2]][i]
|
||||
) + (handleSlicingRoom ? slicingRoom : 0);
|
||||
|
||||
}
|
||||
// innerSize cannot be larger than size (#3632)
|
||||
if (positions[3] > positions[2]) {
|
||||
positions[3] = positions[2];
|
||||
}
|
||||
return positions;
|
||||
},
|
||||
|
||||
/**
|
||||
* getStartAndEndRadians - Calculates start and end angles in radians.
|
||||
* Used in series types such as pie and sunburst.
|
||||
*
|
||||
* @private
|
||||
* @function Highcharts.CenteredSeriesMixin.getStartAndEndRadians
|
||||
*
|
||||
* @param {number} start
|
||||
* Start angle in degrees.
|
||||
*
|
||||
* @param {number} end
|
||||
* Start angle in degrees.
|
||||
*
|
||||
* @return {Highcharts.RadianAngles}
|
||||
* Returns an object containing start and end angles as radians.
|
||||
*/
|
||||
getStartAndEndRadians: function getStartAndEndRadians(start, end) {
|
||||
var startAngle = isNumber(start) ? start : 0, // must be a number
|
||||
endAngle = (
|
||||
(
|
||||
isNumber(end) && // must be a number
|
||||
end > startAngle && // must be larger than the start angle
|
||||
// difference must be less than 360 degrees
|
||||
(end - startAngle) < 360
|
||||
) ?
|
||||
end :
|
||||
startAngle + 360
|
||||
),
|
||||
correction = -90;
|
||||
return {
|
||||
start: deg2rad * (startAngle + correction),
|
||||
end: deg2rad * (endAngle + correction)
|
||||
};
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user