Skip to content

Commit d2484f3

Browse files
committed
make modHalf restrict output to "half" of Math.abs(input)
- and use it in Lib.angleDelta
1 parent 939bdad commit d2484f3

File tree

6 files changed

+11
-10
lines changed

6 files changed

+11
-10
lines changed

src/lib/angles.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
'use strict';
1010

11-
var mod = require('./mod').mod;
11+
var modModule = require('./mod');
12+
var mod = modModule.mod;
13+
var modHalf = modModule.modHalf;
1214

1315
var PI = Math.PI;
1416
var twoPI = 2 * PI;
@@ -37,7 +39,7 @@ function isFullCircle(aBnds) {
3739
* @return {number} angular delta in *radians*
3840
*/
3941
function angleDelta(a, b) {
40-
return mod((b - a) - PI, twoPI) - PI;
42+
return modHalf(b - a, twoPI);
4143
}
4244

4345
/**

src/lib/coerce.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ exports.valObjectMeta = {
186186
coerceFunction: function(v, propOut, dflt) {
187187
if(v === 'auto') propOut.set('auto');
188188
else if(!isNumeric(v)) propOut.set(dflt);
189-
else propOut.set(modHalf(+v, 180));
189+
else propOut.set(modHalf(+v, 360));
190190
}
191191
},
192192
subplotid: {

src/lib/mod.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ function mod(v, d) {
2222
* rather than (-d, 0] if v is negative
2323
*/
2424
function modHalf(v, d) {
25-
var d2 = 2 * d;
26-
return Math.abs(v) > d ?
27-
v - Math.round(v / d2) * d2 :
25+
return Math.abs(v) > (d / 2) ?
26+
v - Math.round(v / d) * d :
2827
v;
2928
}
3029

src/plots/polar/polar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,7 @@ proto.updateAngularDrag = function(fullLayout) {
11211121
});
11221122

11231123
// update rotation -> range -> _m,_b
1124-
angularAxis.rotation = Lib.modHalf(rot1, 180);
1124+
angularAxis.rotation = Lib.modHalf(rot1, 360);
11251125
angularAxis.setGeometry();
11261126
angularAxis.setScale();
11271127

src/traces/scattermapbox/hover.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ module.exports = function hoverPoints(pointData, xval, yval) {
3535
var lonlat = d.lonlat;
3636
if(lonlat[0] === BADNUM) return Infinity;
3737

38-
var lon = Lib.modHalf(lonlat[0], 180);
38+
var lon = Lib.modHalf(lonlat[0], 360);
3939
var lat = lonlat[1];
4040
var pt = subplot.project([lon, lat]);
4141
var dx = pt.x - xa.c2p([xval2, lat]);
@@ -52,7 +52,7 @@ module.exports = function hoverPoints(pointData, xval, yval) {
5252

5353
var di = cd[pointData.index];
5454
var lonlat = di.lonlat;
55-
var lonlatShifted = [Lib.modHalf(lonlat[0], 180) + lonShift, lonlat[1]];
55+
var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];
5656

5757
// shift labels back to original winded globe
5858
var xc = xa.c2p(lonlatShifted);

src/traces/scattermapbox/select.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module.exports = function selectPoints(searchInfo, polygon) {
3232
var lonlat = di.lonlat;
3333

3434
if(lonlat[0] !== BADNUM) {
35-
var lonlat2 = [Lib.modHalf(lonlat[0], 180), lonlat[1]];
35+
var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];
3636
var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];
3737

3838
if(polygon.contains(xy)) {

0 commit comments

Comments
 (0)