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

Function drawRoseDataPoints

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

Source from the content-addressed store, hash-verified

3157}
3158
3159function drawRoseDataPoints(series, opts, config, context) {
3160 var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
3161 var roseOption = assign({}, {
3162 type: 'area',
3163 activeOpacity: 0.5,
3164 activeRadius: 10 * opts.pixelRatio,
3165 offsetAngle: 0,
3166 labelWidth: 15 * opts.pixelRatio,
3167 border:false,
3168 borderWidth:2,
3169 borderColor:'#FFFFFF'
3170 }, opts.extra.rose);
3171 if (config.pieChartLinePadding == 0) {
3172 config.pieChartLinePadding = roseOption.activeRadius;
3173 }
3174 var centerPosition = {
3175 x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,
3176 y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2
3177 };
3178 var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);
3179 var minRadius = roseOption.minRadius || radius * 0.5;
3180
3181 series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);
3182
3183 var activeRadius = roseOption.activeRadius;
3184
3185 series = series.map(function(eachSeries) {
3186 eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;
3187 return eachSeries;
3188 });
3189
3190 series.forEach(function(eachSeries, seriesIndex) {
3191 if (opts.tooltip) {
3192 if (opts.tooltip.index == seriesIndex) {
3193 context.beginPath();
3194 context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));
3195 context.moveTo(centerPosition.x, centerPosition.y);
3196 context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_,
3197 eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);
3198 context.closePath();
3199 context.fill();
3200 }
3201 }
3202 context.beginPath();
3203 context.setLineWidth(roseOption.borderWidth * opts.pixelRatio);
3204 context.lineJoin = "round";
3205 context.setStrokeStyle(roseOption.borderColor);
3206 context.setFillStyle(eachSeries.color);
3207 context.moveTo(centerPosition.x, centerPosition.y);
3208 context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 *
3209 eachSeries._rose_proportion_ * Math.PI);
3210 context.closePath();
3211 context.fill();
3212 if (roseOption.border == true) {
3213 context.stroke();
3214 }
3215 });
3216

Callers 1

drawChartsFunction · 0.85

Calls 4

getRoseDataPointsFunction · 0.85
hexToRgbFunction · 0.85
drawPieTextFunction · 0.85
mapMethod · 0.80

Tested by

no test coverage detected