added angleDeg flag that enables developers to choose radians if they like

This commit is contained in:
Eric Rowell 2014-03-21 20:44:25 -07:00
parent ddf34d0af9
commit e5562f5dbb
6 changed files with 25 additions and 5 deletions

View File

@ -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();

View File

@ -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);

View File

@ -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(),

View File

@ -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();

View File

@ -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);

View File

@ -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;
});
});