MCPcopy Create free account
hub / github.com/CoderOpen/waimai / drawGaugeDataPoints

Function drawGaugeDataPoints

front/components/u-charts/u-charts.js:3289–3417  ·  view source on GitHub ↗
(categories, series, opts, config, context)

Source from the content-addressed store, hash-verified

3287}
3288
3289function drawGaugeDataPoints(categories, series, opts, config, context) {
3290 var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
3291 var gaugeOption = assign({}, {
3292 startAngle: 0.75,
3293 endAngle: 0.25,
3294 width: 15,
3295 splitLine: {
3296 fixRadius: 0,
3297 splitNumber: 10,
3298 width: 15,
3299 color: '#FFFFFF',
3300 childNumber: 5,
3301 childWidth: 5
3302 },
3303 pointer: {
3304 width: 15,
3305 color: 'auto'
3306 }
3307 }, opts.extra.gauge);
3308
3309 if (gaugeOption.oldAngle == undefined) {
3310 gaugeOption.oldAngle = gaugeOption.startAngle;
3311 }
3312 if (gaugeOption.oldData == undefined) {
3313 gaugeOption.oldData = 0;
3314 }
3315 categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);
3316
3317 var centerPosition = {
3318 x: opts.width / 2,
3319 y: opts.height / 2
3320 };
3321 var radius = Math.min(centerPosition.x, centerPosition.y);
3322 radius -= 5 * opts.pixelRatio;
3323 radius -= gaugeOption.width / 2;
3324 var innerRadius = radius - gaugeOption.width;
3325
3326 //画背景
3327 context.setLineWidth(gaugeOption.width);
3328 context.setLineCap('butt');
3329 for (let i = 0; i < categories.length; i++) {
3330 let eachCategories = categories[i];
3331 context.beginPath();
3332 context.setStrokeStyle(eachCategories.color);
3333 context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ *
3334 Math.PI, false);
3335 context.stroke();
3336 }
3337 context.save();
3338
3339 //画刻度线
3340 let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;
3341 let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;
3342 let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;
3343 let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;
3344 let endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;
3345 let childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;
3346

Callers 1

drawChartsFunction · 0.85

Calls 4

getGaugeAxisPointsFunction · 0.85
getGaugeDataPointsFunction · 0.85
drawGaugeLabelFunction · 0.85
drawRingTitleFunction · 0.85

Tested by

no test coverage detected