cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
42 lines (41 loc) • 1.35 kB
JavaScript
import { bind, map } from "../../../../zrender/lib/core/util.mjs";
function dataToCoordSize(dataSize, dataItem) {
dataItem = dataItem || [0, 0];
return map(["Radius", "Angle"], function(dim, dimIdx) {
var getterName = "get" + dim + "Axis";
var axis = this[getterName]();
var val = dataItem[dimIdx];
var halfSize = dataSize[dimIdx] / 2;
var result = axis.type === "category" ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
if (dim === "Angle") {
result = result * Math.PI / 180;
}
return result;
}, this);
}
function polarPrepareCustom(coordSys) {
var radiusAxis = coordSys.getRadiusAxis();
var angleAxis = coordSys.getAngleAxis();
var radius = radiusAxis.getExtent();
radius[0] > radius[1] && radius.reverse();
return {
coordSys: {
type: "polar",
cx: coordSys.cx,
cy: coordSys.cy,
r: radius[1],
r0: radius[0]
},
api: {
coord: function(data) {
var radius2 = radiusAxis.dataToRadius(data[0]);
var angle = angleAxis.dataToAngle(data[1]);
var coord = coordSys.coordToPoint([radius2, angle]);
coord.push(radius2, angle * Math.PI / 180);
return coord;
},
size: bind(dataToCoordSize, coordSys)
}
};
}
export { polarPrepareCustom as default };