From 2f1006c6dedeed8dcd6fc25ba099cc3932329d64 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sat, 5 Dec 2015 09:39:25 -0500 Subject: [PATCH 1/2] Make sure we always have a valid end angle when reseting the model. Previously this was undefined and interpreted as 0 in the animation code. --- src/controllers/controller.doughnut.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/controllers/controller.doughnut.js b/src/controllers/controller.doughnut.js index e6992814d..9a7cea9af 100644 --- a/src/controllers/controller.doughnut.js +++ b/src/controllers/controller.doughnut.js @@ -150,10 +150,11 @@ var resetModel = { x: this.chart.chart.width / 2, y: this.chart.chart.height / 2, - startAngle: Math.PI * -0.5, // use - PI / 2 instead of 3PI / 2 to make animations better. It means that we never deal with overflow during the transition function + startAngle: Math.PI * -0.5, // use - PI / 2 instead of 3PI / 2 to make animations better. It means that we never deal with overflow during the transition function, + endAngle: Math.PI * -0.5, circumference: (this.chart.options.animation.animateRotate) ? 0 : this.calculateCircumference(this.getDataset().data[index]), outerRadius: (this.chart.options.animation.animateScale) ? 0 : this.outerRadius, - innerRadius: (this.chart.options.animation.animateScale) ? 0 : this.innerRadius, + innerRadius: (this.chart.options.animation.animateScale) ? 0 : this.innerRadius }; helpers.extend(arc, { From 89da20354ca26980a772eed2d6976f0da467909d Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sat, 5 Dec 2015 09:55:17 -0500 Subject: [PATCH 2/2] Fix tests --- test/controller.doughnut.tests.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/controller.doughnut.tests.js b/test/controller.doughnut.tests.js index 29811e111..38a34bfe7 100644 --- a/test/controller.doughnut.tests.js +++ b/test/controller.doughnut.tests.js @@ -103,36 +103,40 @@ describe('Doughnut controller tests', function() { x: 50, y: 100, startAngle: Math.PI * -0.5, + endAngle: Math.PI * -0.5, circumference: 2.166614539857563, outerRadius: 49, - innerRadius: 36.75, + innerRadius: 36.75 }); expect(chart.data.datasets[1].metaData[1]._model).toEqual({ x: 50, y: 100, startAngle: Math.PI * -0.5, + endAngle: Math.PI * -0.5, circumference: 3.2499218097863447, outerRadius: 49, - innerRadius: 36.75, + innerRadius: 36.75 }); expect(chart.data.datasets[1].metaData[2]._model).toEqual({ x: 50, y: 100, startAngle: Math.PI * -0.5, + endAngle: Math.PI * -0.5, circumference: 0, outerRadius: 49, - innerRadius: 36.75, + innerRadius: 36.75 }); expect(chart.data.datasets[1].metaData[3]._model).toEqual({ x: 50, y: 100, startAngle: Math.PI * -0.5, + endAngle: Math.PI * -0.5, circumference: 0.8666458159430251, outerRadius: 49, - innerRadius: 36.75, + innerRadius: 36.75 }); controller.update();