(series, opts, config, context)
| 3157 | } |
| 3158 | |
| 3159 | function 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 |
no test coverage detected