From ee3285089a73ae5f821a8bd394329df95605e084 Mon Sep 17 00:00:00 2001 From: jdescottes Date: Sat, 12 Apr 2014 09:49:29 +0200 Subject: [PATCH] Enhancement : shape tool + shift : now constrained to minimum --- src/js/drawingtools/ShapeTool.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/js/drawingtools/ShapeTool.js b/src/js/drawingtools/ShapeTool.js index f3e8acbd..d0de3a0e 100644 --- a/src/js/drawingtools/ShapeTool.js +++ b/src/js/drawingtools/ShapeTool.js @@ -74,14 +74,16 @@ * @return {Object} {row : Number, col : Number} */ ns.ShapeTool.prototype.getScaledCoordinates_ = function(col, row) { - var sign; - if (Math.abs(this.startCol - col) > Math.abs(this.startRow - row)) { - sign = row > this.startRow ? 1 : -1; - row = this.startRow + (sign * Math.abs(this.startCol - col)); - } else { - sign = col > this.startCol ? 1 : -1; - col = this.startCol + (sign * Math.abs(this.startRow - row)); - } + var dX = this.startCol - col; + var absX = Math.abs(dX); + + var dY = this.startRow - row; + var absY = Math.abs(dY); + + var delta = Math.min(absX, absY); + row = this.startRow - ((dY/absY)*delta); + col = this.startCol - ((dX/absX)*delta); + return { col : col, row : row