diff --git a/src/Context.js b/src/Context.js index 487de243..5347f9e3 100644 --- a/src/Context.js +++ b/src/Context.js @@ -428,7 +428,7 @@ fillPatternX = shape.getFillPatternX(), fillPatternY = shape.getFillPatternY(), fillPatternScale = shape.getFillPatternScale(), - fillPatternRotation = shape.getFillPatternRotation(), + fillPatternRotation = Kinetic.getAngle(shape.getFillPatternRotation()), fillPatternOffset = shape.getFillPatternOffset(), fillPatternRepeat = shape.getFillPatternRepeat(); diff --git a/src/Global.js b/src/Global.js index 1209582d..ff4a53c3 100644 --- a/src/Global.js +++ b/src/Global.js @@ -32,6 +32,8 @@ /*jshint -W079, -W020*/ var Kinetic = {}; (function(root) { + var PI_OVER_180 = Math.PI / 180; + Kinetic = { // public version: '@@version', @@ -51,7 +53,7 @@ var Kinetic = {}; dblClickWindow: 400, pixelRatio: undefined, dragDistance : 0, - enableThrottling: true, + angleDeg: true, // user agent UA: (function() { @@ -295,6 +297,9 @@ var Kinetic = {}; } } } + }, + getAngle: function(angle) { + return this.angleDeg ? angle * PI_OVER_180 : angle; } }; })(this); diff --git a/src/Node.js b/src/Node.js index 09c58324..fc2ea70e 100644 --- a/src/Node.js +++ b/src/Node.js @@ -1154,7 +1154,7 @@ var m = new Kinetic.Transform(), x = this.getX(), y = this.getY(), - rotation = this.getRotation() * Math.PI / 180, + rotation = Kinetic.getAngle(this.getRotation()), scaleX = this.getScaleX(), scaleY = this.getScaleY(), skewX = this.getSkewX(), diff --git a/src/shapes/Arc.js b/src/shapes/Arc.js index 051e5bc8..0338aac2 100644 --- a/src/shapes/Arc.js +++ b/src/shapes/Arc.js @@ -1,4 +1,6 @@ (function() { + var PI_OVER_180 = Math.PI / 180; + /** * Arc constructor * @constructor @@ -34,7 +36,7 @@ this.sceneFunc(this._sceneFunc); }, _sceneFunc: function(context) { - var angle = this.angle() * Math.PI / 180, + var angle = Kinetic.getAngle(this.angle()), clockwise = this.clockwise(); context.beginPath(); diff --git a/src/shapes/Wedge.js b/src/shapes/Wedge.js index 52eab420..ed37d5c5 100644 --- a/src/shapes/Wedge.js +++ b/src/shapes/Wedge.js @@ -33,7 +33,7 @@ }, _sceneFunc: function(context) { context.beginPath(); - context.arc(0, 0, this.getRadius(), 0, this.getAngle() * Math.PI / 180, this.getClockwise()); + context.arc(0, 0, this.getRadius(), 0, Kinetic.getAngle(this.getAngle()), this.getClockwise()); context.lineTo(0, 0); context.closePath(); context.fillStrokeShape(this); diff --git a/test/unit/Global-test.js b/test/unit/Global-test.js index 0b7f2eae..9c689115 100644 --- a/test/unit/Global-test.js +++ b/test/unit/Global-test.js @@ -4,4 +4,17 @@ suite('Global', function() { test('test Kinetic version number', function() { assert.equal(Kinetic.version, 'dev'); }); + + // ====================================================== + test('getAngle()', function() { + // test that default angleDeg is true + assert.equal(Kinetic.angleDeg, true); + assert.equal(Kinetic.getAngle(180), Math.PI); + + Kinetic.angleDeg = false; + assert.equal(Kinetic.getAngle(1), 1); + + // set angleDeg back to true for future tests + Kinetic.angleDeg = true; + }); }); \ No newline at end of file