mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-05-04 03:44:45 +00:00
Simplify object straightening logic. Thanks @woutercommandeur. Closes #362.
This commit is contained in:
parent
299273d7bd
commit
4ae8b9d725
5 changed files with 15 additions and 33 deletions
21
dist/all.js
vendored
21
dist/all.js
vendored
|
|
@ -13424,19 +13424,11 @@ fabric.util.object.extend(fabric.Object.prototype, {
|
|||
* @return {Number} angle value
|
||||
*/
|
||||
_getAngleValueForStraighten: function() {
|
||||
var angle = this.get('angle');
|
||||
|
||||
// TODO (kangax): can this be simplified?
|
||||
|
||||
if (angle > -225 && angle <= -135) { return -180; }
|
||||
else if (angle > -135 && angle <= -45) { return -90; }
|
||||
else if (angle > -45 && angle <= 45) { return 0; }
|
||||
else if (angle > 45 && angle <= 135) { return 90; }
|
||||
else if (angle > 135 && angle <= 225 ) { return 180; }
|
||||
else if (angle > 225 && angle <= 315) { return 270; }
|
||||
else if (angle > 315) { return 360; }
|
||||
|
||||
return 0;
|
||||
var angle = this.getAngle() % 360;
|
||||
if (angle > 0) {
|
||||
return Math.round((angle-1)/90) * 90;
|
||||
}
|
||||
return Math.round(angle/90) * 90;
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -13446,8 +13438,7 @@ fabric.util.object.extend(fabric.Object.prototype, {
|
|||
* @chainable
|
||||
*/
|
||||
straighten: function() {
|
||||
var angle = this._getAngleValueForStraighten();
|
||||
this.setAngle(angle);
|
||||
this.setAngle(this._getAngleValueForStraighten());
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
|
|||
4
dist/all.min.js
vendored
4
dist/all.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
dist/all.min.js.gz
vendored
BIN
dist/all.min.js.gz
vendored
Binary file not shown.
|
|
@ -6,19 +6,11 @@ fabric.util.object.extend(fabric.Object.prototype, {
|
|||
* @return {Number} angle value
|
||||
*/
|
||||
_getAngleValueForStraighten: function() {
|
||||
var angle = this.get('angle');
|
||||
|
||||
// TODO (kangax): can this be simplified?
|
||||
|
||||
if (angle > -225 && angle <= -135) { return -180; }
|
||||
else if (angle > -135 && angle <= -45) { return -90; }
|
||||
else if (angle > -45 && angle <= 45) { return 0; }
|
||||
else if (angle > 45 && angle <= 135) { return 90; }
|
||||
else if (angle > 135 && angle <= 225 ) { return 180; }
|
||||
else if (angle > 225 && angle <= 315) { return 270; }
|
||||
else if (angle > 315) { return 360; }
|
||||
|
||||
return 0;
|
||||
var angle = this.getAngle() % 360;
|
||||
if (angle > 0) {
|
||||
return Math.round((angle-1)/90) * 90;
|
||||
}
|
||||
return Math.round(angle/90) * 90;
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
@ -28,8 +20,7 @@ fabric.util.object.extend(fabric.Object.prototype, {
|
|||
* @chainable
|
||||
*/
|
||||
straighten: function() {
|
||||
var angle = this._getAngleValueForStraighten();
|
||||
this.setAngle(angle);
|
||||
this.setAngle(this._getAngleValueForStraighten());
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -587,7 +587,7 @@
|
|||
|
||||
object.setAngle(999);
|
||||
object.straighten();
|
||||
equal(object.get('angle'), 360);
|
||||
equal(object.get('angle'), 270);
|
||||
});
|
||||
|
||||
test('toGrayscale', function() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue