@antv/f2
Version:
Charts for mobile visualization.
57 lines (56 loc) • 1.77 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _tslib = require("tslib");
var _fEngine = require("@antv/f-engine");
var getPoint = function getPoint(cener, angle, r) {
var x = cener.x + Math.cos(angle) * r;
var y = cener.y + Math.sin(angle) * r;
return {
x: x,
y: y
};
};
var getTicks = function getTicks(start, end, tickCount, center, r, tickOffset, tickLength) {
var ticks = [];
var diff = end - start;
for (var i = 0; i <= tickCount; i++) {
var tickValue = start + diff * i / tickCount;
var startPoint = getPoint(center, tickValue, r + tickOffset - tickLength);
var endPoint = getPoint(center, tickValue, r + tickOffset);
ticks.push({
tickValue: tickValue,
start: startPoint,
end: endPoint
});
}
return ticks;
};
var withGauge = function withGauge(View) {
return /** @class */function (_super) {
(0, _tslib.__extends)(Gauge, _super);
function Gauge() {
return _super !== null && _super.apply(this, arguments) || this;
}
Gauge.prototype.render = function () {
var _a = this,
props = _a.props,
context = _a.context;
var startAngle = props.startAngle,
endAngle = props.endAngle,
tickCount = props.tickCount,
center = props.center,
r = props.r,
tickOffset = props.tickOffset,
tickLength = props.tickLength;
var ticks = getTicks(startAngle, endAngle, tickCount, center, context.px2hd(r), context.px2hd(tickOffset), context.px2hd(tickLength));
return (0, _fEngine.jsx)(View, (0, _tslib.__assign)({}, props, {
ticks: ticks
}));
};
return Gauge;
}(_fEngine.Component);
};
var _default = exports.default = withGauge;
;