From 8a54468f23ac909f15e80ab5e875b18439975598 Mon Sep 17 00:00:00 2001 From: Akihiko Kusanagi Date: Thu, 15 Nov 2018 23:29:21 +0800 Subject: [PATCH] Draw inner border for arc elements --- docs/charts/doughnut.md | 21 +++- docs/charts/polar.md | 21 +++- src/controllers/controller.doughnut.js | 49 ++++++-- src/controllers/controller.polarArea.js | 4 +- src/elements/element.arc.js | 45 +++++-- test/context.js | 1 + .../doughnut-border-align-center.json | 31 +++++ .../doughnut-border-align-center.png | Bin 0 -> 28418 bytes .../doughnut-border-align-inner.json | 32 +++++ .../doughnut-border-align-inner.png | Bin 0 -> 27021 bytes .../pie-border-align-center.json | 31 +++++ .../pie-border-align-center.png | Bin 0 -> 22739 bytes .../pie-border-align-inner.json | 32 +++++ .../pie-border-align-inner.png | Bin 0 -> 22208 bytes .../border-align-center.json | 41 ++++++ .../border-align-center.png | Bin 0 -> 20190 bytes .../border-align-inner.json | 42 +++++++ .../border-align-inner.png | Bin 0 -> 9999 bytes test/specs/controller.doughnut.tests.js | 66 ++++++++-- test/specs/core.tooltip.tests.js | 2 +- test/specs/element.arc.tests.js | 118 ++++++++++++++++-- 21 files changed, 481 insertions(+), 55 deletions(-) create mode 100644 test/fixtures/controller.doughnut/doughnut-border-align-center.json create mode 100644 test/fixtures/controller.doughnut/doughnut-border-align-center.png create mode 100644 test/fixtures/controller.doughnut/doughnut-border-align-inner.json create mode 100644 test/fixtures/controller.doughnut/doughnut-border-align-inner.png create mode 100644 test/fixtures/controller.doughnut/pie-border-align-center.json create mode 100644 test/fixtures/controller.doughnut/pie-border-align-center.png create mode 100644 test/fixtures/controller.doughnut/pie-border-align-inner.json create mode 100644 test/fixtures/controller.doughnut/pie-border-align-inner.png create mode 100644 test/fixtures/controller.polarArea/border-align-center.json create mode 100644 test/fixtures/controller.polarArea/border-align-center.png create mode 100644 test/fixtures/controller.polarArea/border-align-inner.json create mode 100644 test/fixtures/controller.polarArea/border-align-inner.png diff --git a/docs/charts/doughnut.md b/docs/charts/doughnut.md index 4f1656f3063..9fda1bbf719 100644 --- a/docs/charts/doughnut.md +++ b/docs/charts/doughnut.md @@ -55,12 +55,21 @@ The doughnut/pie chart allows a number of properties to be specified for each da | Name | Type | Description | ---- | ---- | ----------- -| `backgroundColor` | `Color[]` | The fill color of the arcs in the dataset. See [Colors](../general/colors.md#colors). -| `borderColor` | `Color[]` | The border color of the arcs in the dataset. See [Colors](../general/colors.md#colors). -| `borderWidth` | `Number[]` | The border width of the arcs in the dataset. -| `hoverBackgroundColor` | `Color[]` | The fill colour of the arcs when hovered. -| `hoverBorderColor` | `Color[]` | The stroke colour of the arcs when hovered. -| `hoverBorderWidth` | `Number[]` | The stroke width of the arcs when hovered. +| `backgroundColor` | `Color/Color[]` | The fill color of the arcs in the dataset. See [Colors](../general/colors.md#colors). +| `borderColor` | `Color/Color[]` | The border color of the arcs in the dataset. See [Colors](../general/colors.md#colors). +| `borderWidth` | `Number/Number[]` | The border width of the arcs in the dataset. +| `borderAlign` | `String/String[]` | The border alignment of the arcs in the dataset. [more...](#border-alignment) +| `hoverBackgroundColor` | `Color/Color[]` | The fill colour of the arcs when hovered. +| `hoverBorderColor` | `Color/Color[]` | The stroke colour of the arcs when hovered. +| `hoverBorderWidth` | `Number/Number[]` | The stroke width of the arcs when hovered. + +### Border Alignment + +The following values are supported for `borderAlign`. +* `'center'` (default) +* `'inner'` + +When `'center'` is set, the borders of arcs next to each other will overlap. When `'inner'` is set, it is guaranteed that all the borders are not overlap. ## Config Options diff --git a/docs/charts/polar.md b/docs/charts/polar.md index 2ae8b5ec3dd..20dc93c283b 100644 --- a/docs/charts/polar.md +++ b/docs/charts/polar.md @@ -46,12 +46,21 @@ The following options can be included in a polar area chart dataset to configure | Name | Type | Description | ---- | ---- | ----------- -| `backgroundColor` | `Color[]` | The fill color of the arcs in the dataset. See [Colors](../general/colors.md#colors). -| `borderColor` | `Color[]` | The border color of the arcs in the dataset. See [Colors](../general/colors.md#colors). -| `borderWidth` | `Number[]` | The border width of the arcs in the dataset. -| `hoverBackgroundColor` | `Color[]` | The fill colour of the arcs when hovered. -| `hoverBorderColor` | `Color[]` | The stroke colour of the arcs when hovered. -| `hoverBorderWidth` | `Number[]` | The stroke width of the arcs when hovered. +| `backgroundColor` | `Color/Color[]` | The fill color of the arcs in the dataset. See [Colors](../general/colors.md#colors). +| `borderColor` | `Color/Color[]` | The border color of the arcs in the dataset. See [Colors](../general/colors.md#colors). +| `borderWidth` | `Number/Number[]` | The border width of the arcs in the dataset. +| `borderAlign` | `String/String[]` | The border alignment of the arcs in the dataset. [more...](#border-alignment) +| `hoverBackgroundColor` | `Color/Color[]` | The fill colour of the arcs when hovered. +| `hoverBorderColor` | `Color/Color[]` | The stroke colour of the arcs when hovered. +| `hoverBorderWidth` | `Number/Number[]` | The stroke width of the arcs when hovered. + +### Border Alignment + +The following values are supported for `borderAlign`. +* `'center'` (default) +* `'inner'` + +When `'center'` is set, the borders of arcs next to each other will overlap. When `'inner'` is set, it is guaranteed that all the borders are not overlap. ## Config Options diff --git a/src/controllers/controller.doughnut.js b/src/controllers/controller.doughnut.js index b24a7a00e9f..dd679bd6785 100644 --- a/src/controllers/controller.doughnut.js +++ b/src/controllers/controller.doughnut.js @@ -143,9 +143,8 @@ module.exports = DatasetController.extend({ var chart = me.chart; var chartArea = chart.chartArea; var opts = chart.options; - var arcOpts = opts.elements.arc; - var availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth; - var availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth; + var availableWidth = chartArea.right - chartArea.left; + var availableHeight = chartArea.bottom - chartArea.top; var minSize = Math.min(availableWidth, availableHeight); var offset = {x: 0, y: 0}; var meta = me.getMeta(); @@ -171,7 +170,7 @@ module.exports = DatasetController.extend({ offset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5}; } - chart.borderWidth = me.getMaxBorderWidth(meta.data); + chart.borderWidth = me.getMaxBorderWidth(); chart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0); chart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0); chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount(); @@ -231,6 +230,7 @@ module.exports = DatasetController.extend({ model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor); model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor); model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth); + model.borderAlign = custom.borderAlign ? custom.borderAlign : valueOrDefault(dataset.borderAlign, index, elementOpts.borderAlign); // Set correct angles if not resetting if (!reset || !animationOpts.animateRotate) { @@ -276,18 +276,41 @@ module.exports = DatasetController.extend({ // gets the max border or hover width to properly scale pie charts getMaxBorderWidth: function(arcs) { + var me = this; var max = 0; - var index = this.index; - var length = arcs.length; - var borderWidth; - var hoverWidth; + var index = me.index; + var chart = me.chart; + var valueAtIndexOrDefault = helpers.valueAtIndexOrDefault; + var elementOpts = chart.options.elements.arc; + var i, ilen, dataset, custom, borderAlign, borderWidth, hoverWidth; + + if (!arcs) { + // Find the outmost visible dataset + for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) { + if (chart.isDatasetVisible(i)) { + arcs = chart.getDatasetMeta(i).data; + index = i; + break; + } + } + } + + if (!arcs) { + return 0; + } - for (var i = 0; i < length; i++) { - borderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0; - hoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0; + dataset = chart.data.datasets[index]; - max = borderWidth > max ? borderWidth : max; - max = hoverWidth > max ? hoverWidth : max; + for (i = 0, ilen = arcs.length; i < ilen; ++i) { + custom = arcs[i].custom || {}; + borderAlign = custom.borderAlign ? custom.borderAlign : valueAtIndexOrDefault(dataset.borderAlign, i, elementOpts.borderAlign); + if (borderAlign !== 'inner') { + borderWidth = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(dataset.borderWidth, i, elementOpts.borderWidth); + hoverWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueAtIndexOrDefault(dataset.hoverBorderWidth, i, borderWidth); + + max = borderWidth > max ? borderWidth : max; + max = hoverWidth > max ? hoverWidth : max; + } } return max; } diff --git a/src/controllers/controller.polarArea.js b/src/controllers/controller.polarArea.js index fb045e30271..39013d872a4 100644 --- a/src/controllers/controller.polarArea.js +++ b/src/controllers/controller.polarArea.js @@ -148,10 +148,9 @@ module.exports = DatasetController.extend({ var chart = me.chart; var chartArea = chart.chartArea; var opts = chart.options; - var arcOpts = opts.elements.arc; var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top); - chart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0); + chart.outerRadius = Math.max(minSize / 2, 0); chart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0); chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount(); @@ -206,6 +205,7 @@ module.exports = DatasetController.extend({ model.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor); model.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor); model.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth); + model.borderAlign = custom.borderAlign ? custom.borderAlign : valueOrDefault(dataset.borderAlign, index, elementOpts.borderAlign); arc.pivot(); }, diff --git a/src/elements/element.arc.js b/src/elements/element.arc.js index 0d665d71740..82d836c6b80 100644 --- a/src/elements/element.arc.js +++ b/src/elements/element.arc.js @@ -9,7 +9,8 @@ defaults._set('global', { arc: { backgroundColor: defaults.global.defaultColor, borderColor: '#fff', - borderWidth: 2 + borderWidth: 2, + borderAlign: 'center' } } }); @@ -85,23 +86,51 @@ module.exports = Element.extend({ var vm = this._view; var sA = vm.startAngle; var eA = vm.endAngle; + var pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0; + var angleMargin; - ctx.beginPath(); + ctx.save(); - ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA); + ctx.beginPath(); + ctx.arc(vm.x, vm.y, vm.outerRadius - pixelMargin, sA, eA); ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true); - ctx.closePath(); - ctx.strokeStyle = vm.borderColor; - ctx.lineWidth = vm.borderWidth; ctx.fillStyle = vm.backgroundColor; - ctx.fill(); - ctx.lineJoin = 'bevel'; if (vm.borderWidth) { + if (vm.borderAlign === 'inner') { + // Draw an inner border by cliping the arc and drawing a double-width border + // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders + ctx.beginPath(); + angleMargin = pixelMargin / vm.outerRadius; + ctx.arc(vm.x, vm.y, vm.outerRadius, sA - angleMargin, eA + angleMargin); + if (vm.innerRadius > pixelMargin) { + angleMargin = pixelMargin / vm.innerRadius; + ctx.arc(vm.x, vm.y, vm.innerRadius - pixelMargin, eA + angleMargin, sA - angleMargin, true); + } else { + ctx.arc(vm.x, vm.y, pixelMargin, eA + Math.PI / 2, sA - Math.PI / 2); + } + ctx.closePath(); + ctx.clip(); + + ctx.beginPath(); + ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA); + ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true); + ctx.closePath(); + + ctx.lineWidth = vm.borderWidth * 2; + ctx.lineJoin = 'round'; + } else { + ctx.lineWidth = vm.borderWidth; + ctx.lineJoin = 'bevel'; + } + + ctx.strokeStyle = vm.borderColor; ctx.stroke(); } + + ctx.restore(); } }); diff --git a/test/context.js b/test/context.js index 3497c721918..089d5072e8c 100644 --- a/test/context.js +++ b/test/context.js @@ -79,6 +79,7 @@ Context.prototype._initMethods = function() { beginPath: function() {}, bezierCurveTo: function() {}, clearRect: function() {}, + clip: function() {}, closePath: function() {}, fill: function() {}, fillRect: function() {}, diff --git a/test/fixtures/controller.doughnut/doughnut-border-align-center.json b/test/fixtures/controller.doughnut/doughnut-border-align-center.json new file mode 100644 index 00000000000..b76b2e82fd1 --- /dev/null +++ b/test/fixtures/controller.doughnut/doughnut-border-align-center.json @@ -0,0 +1,31 @@ +{ + "config": { + "type": "doughnut", + "data": { + "labels": ["A", "B", "C", "D", "E"], + "datasets": [{ + "data": [1, 5, 10, 50, 100], + "backgroundColor": [ + "rgba(255, 99, 132, 0.8)", + "rgba(54, 162, 235, 0.8)", + "rgba(255, 206, 86, 0.8)", + "rgba(75, 192, 192, 0.8)", + "rgba(153, 102, 255, 0.8)" + ], + "borderWidth": 20, + "borderColor": [ + "rgb(255, 99, 132)", + "rgb(54, 162, 235)", + "rgb(255, 206, 86)", + "rgb(75, 192, 192)", + "rgb(153, 102, 255)" + ] + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false + } + } +} diff --git a/test/fixtures/controller.doughnut/doughnut-border-align-center.png b/test/fixtures/controller.doughnut/doughnut-border-align-center.png new file mode 100644 index 0000000000000000000000000000000000000000..3eec51ff8074d0d9930bdada377cd8da3324283b GIT binary patch literal 28418 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 Sa`4}F5ItR^t8aB2qy7*0U0pQ* literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.doughnut/doughnut-border-align-inner.json b/test/fixtures/controller.doughnut/doughnut-border-align-inner.json new file mode 100644 index 00000000000..7fb4a76e166 --- /dev/null +++ b/test/fixtures/controller.doughnut/doughnut-border-align-inner.json @@ -0,0 +1,32 @@ +{ + "config": { + "type": "doughnut", + "data": { + "labels": ["A", "B", "C", "D", "E"], + "datasets": [{ + "data": [1, 5, 10, 50, 100], + "backgroundColor": [ + "rgba(255, 99, 132, 0.8)", + "rgba(54, 162, 235, 0.8)", + "rgba(255, 206, 86, 0.8)", + "rgba(75, 192, 192, 0.8)", + "rgba(153, 102, 255, 0.8)" + ], + "borderWidth": 20, + "borderColor": [ + "rgb(255, 99, 132)", + "rgb(54, 162, 235)", + "rgb(255, 206, 86)", + "rgb(75, 192, 192)", + "rgb(153, 102, 255)" + ], + "borderAlign": "inner" + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false + } + } +} diff --git a/test/fixtures/controller.doughnut/doughnut-border-align-inner.png b/test/fixtures/controller.doughnut/doughnut-border-align-inner.png new file mode 100644 index 0000000000000000000000000000000000000000..d33adf4c206b1489febf007e30cd7153c5986bae GIT binary patch literal 27021 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 o_BZBn9O=t+9I9LS&zcsH{auF(OK2 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 M8JO$8)^&~lAK|yHD*ylh literal 0 HcmV?d00001 diff --git a/test/fixtures/controller.doughnut/pie-border-align-inner.json b/test/fixtures/controller.doughnut/pie-border-align-inner.json new file mode 100644 index 00000000000..7b1bd0361b7 --- /dev/null +++ b/test/fixtures/controller.doughnut/pie-border-align-inner.json @@ -0,0 +1,32 @@ +{ + "config": { + "type": "pie", + "data": { + "labels": ["A", "B", "C", "D", "E"], + "datasets": [{ + "data": [1, 5, 10, 50, 100], + "backgroundColor": [ + "rgba(255, 99, 132, 0.8)", + "rgba(54, 162, 235, 0.8)", + "rgba(255, 206, 86, 0.8)", + "rgba(75, 192, 192, 0.8)", + "rgba(153, 102, 255, 0.8)" + ], + "borderWidth": 20, + "borderColor": [ + "rgb(255, 99, 132)", + "rgb(54, 162, 235)", + "rgb(255, 206, 86)", + "rgb(75, 192, 192)", + "rgb(153, 102, 255)" + ], + "borderAlign": "inner" + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false + } + } +} diff --git a/test/fixtures/controller.doughnut/pie-border-align-inner.png b/test/fixtures/controller.doughnut/pie-border-align-inner.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f348eb7dd1bb46dddd6a99133b69fb3531bffb GIT binary patch literal 22208 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

q^=irC>vM~x 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 XJ6}gHElyLS;c@HJM+^SP chart.width) { break; diff --git a/test/specs/element.arc.tests.js b/test/specs/element.arc.tests.js index b2caaadaa4c..dd373643519 100644 --- a/test/specs/element.arc.tests.js +++ b/test/specs/element.arc.tests.js @@ -126,6 +126,9 @@ describe('Arc element tests', function() { arc.draw(); expect(mockContext.getCalls()).toEqual([{ + name: 'save', + args: [] + }, { name: 'beginPath', args: [] }, { @@ -137,12 +140,6 @@ describe('Arc element tests', function() { }, { name: 'closePath', args: [] - }, { - name: 'setStrokeStyle', - args: ['rgb(255, 0, 0)'] - }, { - name: 'setLineWidth', - args: [undefined] }, { name: 'setFillStyle', args: ['rgb(0, 0, 255)'] @@ -150,8 +147,8 @@ describe('Arc element tests', function() { name: 'fill', args: [] }, { - name: 'setLineJoin', - args: ['bevel'] + name: 'restore', + args: [] }]); }); @@ -182,6 +179,9 @@ describe('Arc element tests', function() { arc.draw(); expect(mockContext.getCalls()).toEqual([{ + name: 'save', + args: [] + }, { name: 'beginPath', args: [] }, { @@ -194,23 +194,119 @@ describe('Arc element tests', function() { name: 'closePath', args: [] }, { - name: 'setStrokeStyle', - args: ['rgb(255, 0, 0)'] + name: 'setFillStyle', + args: ['rgb(0, 0, 255)'] + }, { + name: 'fill', + args: [] }, { name: 'setLineWidth', args: [5] + }, { + name: 'setLineJoin', + args: ['bevel'] + }, { + name: 'setStrokeStyle', + args: ['rgb(255, 0, 0)'] + }, { + name: 'stroke', + args: [] + }, { + name: 'restore', + args: [] + }]); + }); + + it ('should draw correctly with an inner border', function() { + var mockContext = window.createMockContext(); + var arc = new Chart.elements.Arc({ + _datasetIndex: 2, + _index: 1, + _chart: { + ctx: mockContext, + } + }); + + // Mock out the view as if the controller put it there + arc._view = { + startAngle: 0, + endAngle: Math.PI / 2, + x: 10, + y: 5, + innerRadius: 1, + outerRadius: 3, + + backgroundColor: 'rgb(0, 0, 255)', + borderColor: 'rgb(255, 0, 0)', + borderWidth: 5, + borderAlign: 'inner' + }; + + arc.draw(); + + expect(mockContext.getCalls()).toEqual([{ + name: 'save', + args: [] + }, { + name: 'beginPath', + args: [] + }, { + name: 'arc', + args: [10, 5, 2.67, 0, Math.PI / 2] + }, { + name: 'arc', + args: [10, 5, 1, Math.PI / 2, 0, true] + }, { + name: 'closePath', + args: [] }, { name: 'setFillStyle', args: ['rgb(0, 0, 255)'] }, { name: 'fill', args: [] + }, { + name: 'beginPath', + args: [] + }, { + name: 'arc', + args: [10, 5, 3, -0.11, Math.PI / 2 + 0.11] + }, { + name: 'arc', + args: [10, 5, 1 - 0.33, Math.PI / 2 + 0.33, -0.33, true] + }, { + name: 'closePath', + args: [] + }, { + name: 'clip', + args: [] + }, { + name: 'beginPath', + args: [] + }, { + name: 'arc', + args: [10, 5, 3, 0, Math.PI / 2] + }, { + name: 'arc', + args: [10, 5, 1, Math.PI / 2, 0, true] + }, { + name: 'closePath', + args: [] + }, { + name: 'setLineWidth', + args: [10] }, { name: 'setLineJoin', - args: ['bevel'] + args: ['round'] + }, { + name: 'setStrokeStyle', + args: ['rgb(255, 0, 0)'] }, { name: 'stroke', args: [] + }, { + name: 'restore', + args: [] }]); }); });