From 90ac322841a09cb19c427faee46db88d3aa226b9 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Sun, 22 Dec 2019 22:21:26 +0200 Subject: [PATCH] v3 stuff, add test --- src/controllers/controller.polarArea.js | 4 +- src/helpers/helpers.math.js | 8 ++-- src/scales/scale.radialLinear.js | 8 ++-- .../controller.polarArea/angle-lines.json | 35 ++++++++++++++++++ .../controller.polarArea/angle-lines.png | Bin 0 -> 30736 bytes test/specs/scale.radialLinear.tests.js | 2 +- 6 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 test/fixtures/controller.polarArea/angle-lines.json create mode 100644 test/fixtures/controller.polarArea/angle-lines.png diff --git a/src/controllers/controller.polarArea.js b/src/controllers/controller.polarArea.js index 0063a0443df..7ec26bc1139 100644 --- a/src/controllers/controller.polarArea.js +++ b/src/controllers/controller.polarArea.js @@ -107,9 +107,9 @@ defaults._set('polarArea', { }); function getStartAngleRadians(deg) { - // radianLinear scale draws angleLines using startAngle. 0 is excepted to be at top. + // radialLinear scale draws angleLines using startAngle. 0 is excepted to be at top. // Here we adjust to standard unit circle used in drawing, where 0 is at right. - return helpers.toRadians(deg) - 0.5 * Math.PI; + return helpers.math.toRadians(deg) - 0.5 * Math.PI; } module.exports = DatasetController.extend({ diff --git a/src/helpers/helpers.math.js b/src/helpers/helpers.math.js index d5a5680b8c5..259d4c985ee 100644 --- a/src/helpers/helpers.math.js +++ b/src/helpers/helpers.math.js @@ -83,11 +83,11 @@ export const sign = Math.sign ? }; export function toRadians(degrees) { - return degrees * (Math.PI / 180); + return degrees * (PI / 180); } export function toDegrees(radians) { - return radians * (180 / Math.PI); + return radians * (180 / PI); } /** @@ -118,8 +118,8 @@ export function getAngleFromPoint(centrePoint, anglePoint) { var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter); - if (angle < (-0.5 * Math.PI)) { - angle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2] + if (angle < (-0.5 * PI)) { + angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2] } return { diff --git a/src/scales/scale.radialLinear.js b/src/scales/scale.radialLinear.js index d659819a328..c33232e3dca 100644 --- a/src/scales/scale.radialLinear.js +++ b/src/scales/scale.radialLinear.js @@ -2,7 +2,7 @@ import defaults from '../core/core.defaults'; import helpers from '../helpers/index'; -import {isNumber, toDegrees} from '../helpers/helpers.math'; +import {isNumber, toDegrees, toRadians, _normalizeAngle} from '../helpers/helpers.math'; import LinearScaleBase from './scale.linearbase'; import Ticks from '../core/core.ticks'; @@ -157,7 +157,7 @@ function fitWithPointLabels(scale) { // Add quarter circle to make degree 0 mean top of circle var angleRadians = scale.getIndexAngle(i); - var angle = toDegrees(angleRadians) % 360; + var angle = toDegrees(angleRadians); var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180); var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270); @@ -380,11 +380,11 @@ class RadialLinearScale extends LinearScaleBase { getIndexAngle(index) { var chart = this.chart; - var angleMultiplier = (Math.PI * 2) / chart.data.labels.length; + var angleMultiplier = Math.PI * 2 / chart.data.labels.length; var options = chart.options || {}; var startAngle = options.startAngle || 0; - return index * angleMultiplier + helpers.toRadians(startAngle); + return _normalizeAngle(index * angleMultiplier + toRadians(startAngle)); } getDistanceFromCenterForValue(value) { diff --git a/test/fixtures/controller.polarArea/angle-lines.json b/test/fixtures/controller.polarArea/angle-lines.json new file mode 100644 index 00000000000..01474c028d6 --- /dev/null +++ b/test/fixtures/controller.polarArea/angle-lines.json @@ -0,0 +1,35 @@ +{ + "threshold": 0.05, + "config": { + "type": "polarArea", + "data": { + "labels": ["A", "B", "C", "D", "E"], + "datasets": [{ + "data": [11, 16, 21, 7, 10], + "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)", + "rgba(255, 159, 64, 0.8)" + ] + }] + }, + "options": { + "responsive": false, + "legend": false, + "title": false, + "scale": { + "display": true, + "angleLines": { + "display": true, + "color": "#000" + }, + "ticks": { + "display": false + } + } + } + } +} diff --git a/test/fixtures/controller.polarArea/angle-lines.png b/test/fixtures/controller.polarArea/angle-lines.png new file mode 100644 index 0000000000000000000000000000000000000000..3890d7cb64ae40b4dfcc3a71aeaf4fad322c6eac GIT binary patch literal 30736 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 literal 0 HcmV?d00001 diff --git a/test/specs/scale.radialLinear.tests.js b/test/specs/scale.radialLinear.tests.js index a64157a7e69..d8a50712f76 100644 --- a/test/specs/scale.radialLinear.tests.js +++ b/test/specs/scale.radialLinear.tests.js @@ -535,7 +535,7 @@ describe('Test the radial linear scale', function() { scale.ctx.getCalls().filter(function(x) { return x.name === 'setTextAlign'; }).forEach(function(x, i) { - expect(x.args[0]).toBe(expected.textAlign[i]); + expect(x.args[0]).withContext('startAngle: ' + expected.startAngle + ', tick: ' + i).toBe(expected.textAlign[i]); }); scale.ctx.getCalls().filter(function(x) {