(series, opts, config, context)
| 3062 | } |
| 3063 | |
| 3064 | function drawPieDataPoints(series, opts, config, context) { |
| 3065 | var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; |
| 3066 | var pieOption = assign({}, { |
| 3067 | activeOpacity: 0.5, |
| 3068 | activeRadius: 10 * opts.pixelRatio, |
| 3069 | offsetAngle: 0, |
| 3070 | labelWidth: 15 * opts.pixelRatio, |
| 3071 | ringWidth: 0, |
| 3072 | border:false, |
| 3073 | borderWidth:2, |
| 3074 | borderColor:'#FFFFFF' |
| 3075 | }, opts.extra.pie); |
| 3076 | var centerPosition = { |
| 3077 | x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, |
| 3078 | y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 |
| 3079 | }; |
| 3080 | if (config.pieChartLinePadding == 0) { |
| 3081 | config.pieChartLinePadding = pieOption.activeRadius; |
| 3082 | } |
| 3083 | |
| 3084 | 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); |
| 3085 | |
| 3086 | series = getPieDataPoints(series, radius, process); |
| 3087 | |
| 3088 | var activeRadius = pieOption.activeRadius; |
| 3089 | |
| 3090 | series = series.map(function(eachSeries) { |
| 3091 | eachSeries._start_ += (pieOption.offsetAngle) * Math.PI / 180; |
| 3092 | return eachSeries; |
| 3093 | }); |
| 3094 | series.forEach(function(eachSeries, seriesIndex) { |
| 3095 | if (opts.tooltip) { |
| 3096 | if (opts.tooltip.index == seriesIndex) { |
| 3097 | context.beginPath(); |
| 3098 | context.setFillStyle(hexToRgb(eachSeries.color, opts.extra.pie.activeOpacity || 0.5)); |
| 3099 | context.moveTo(centerPosition.x, centerPosition.y); |
| 3100 | context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, |
| 3101 | eachSeries._start_ + 2 * |
| 3102 | eachSeries._proportion_ * Math.PI); |
| 3103 | context.closePath(); |
| 3104 | context.fill(); |
| 3105 | } |
| 3106 | } |
| 3107 | context.beginPath(); |
| 3108 | context.setLineWidth(pieOption.borderWidth * opts.pixelRatio); |
| 3109 | context.lineJoin = "round"; |
| 3110 | context.setStrokeStyle(pieOption.borderColor); |
| 3111 | context.setFillStyle(eachSeries.color); |
| 3112 | context.moveTo(centerPosition.x, centerPosition.y); |
| 3113 | context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI); |
| 3114 | context.closePath(); |
| 3115 | context.fill(); |
| 3116 | if (pieOption.border == true) { |
| 3117 | context.stroke(); |
| 3118 | } |
| 3119 | }); |
| 3120 | |
| 3121 | if (opts.type === 'ring') { |
no test coverage detected