mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-07-23 20:29:08 -04:00
Add optional parameter 'squared' to Point#getLength() and #getDistance().
This commit is contained in:
parent
dcccc39dcb
commit
293399e5b9
1 changed files with 14 additions and 7 deletions
|
@ -390,7 +390,7 @@ var Point = this.Point = Base.extend(/** @lends Point# */{
|
||||||
* is not modified!
|
* is not modified!
|
||||||
*
|
*
|
||||||
* @param {Matrix} matrix
|
* @param {Matrix} matrix
|
||||||
* @return {Point} the transformed point
|
* @return {Point} The transformed point
|
||||||
*/
|
*/
|
||||||
transform: function(matrix) {
|
transform: function(matrix) {
|
||||||
return matrix ? matrix._transformPoint(this) : this;
|
return matrix ? matrix._transformPoint(this) : this;
|
||||||
|
@ -402,13 +402,16 @@ var Point = this.Point = Base.extend(/** @lends Point# */{
|
||||||
* Returns the distance between the point and another point.
|
* Returns the distance between the point and another point.
|
||||||
*
|
*
|
||||||
* @param {Point} point
|
* @param {Point} point
|
||||||
|
* @param {Boolean} squared Controls whether the distance should remain
|
||||||
|
* squared, or its square root should be calculated.
|
||||||
* @return {Number}
|
* @return {Number}
|
||||||
*/
|
*/
|
||||||
getDistance: function(point) {
|
getDistance: function(point, squared) {
|
||||||
point = Point.read(arguments);
|
point = Point.read(arguments);
|
||||||
var x = point.x - this.x,
|
var x = point.x - this.x,
|
||||||
y = point.y - this.y;
|
y = point.y - this.y,
|
||||||
return Math.sqrt(x * x + y * y);
|
d = x * x + y * y;
|
||||||
|
return squared ? d : Math.sqrt(d);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -421,7 +424,11 @@ var Point = this.Point = Base.extend(/** @lends Point# */{
|
||||||
* @bean
|
* @bean
|
||||||
*/
|
*/
|
||||||
getLength: function() {
|
getLength: function() {
|
||||||
return Math.sqrt(this.x * this.x + this.y * this.y);
|
// Supports a hidden parameter 'squared', which controls whether the
|
||||||
|
// squared length should be returned. Hide it so it produces a bean
|
||||||
|
// property called #length.
|
||||||
|
var l = this.x * this.x + this.y * this.y;
|
||||||
|
return arguments[0] ? l : Math.sqrt(l);
|
||||||
},
|
},
|
||||||
|
|
||||||
setLength: function(length) {
|
setLength: function(length) {
|
||||||
|
@ -453,8 +460,8 @@ var Point = this.Point = Base.extend(/** @lends Point# */{
|
||||||
* {@code length} parameter defines the length to normalize to.
|
* {@code length} parameter defines the length to normalize to.
|
||||||
* The object itself is not modified!
|
* The object itself is not modified!
|
||||||
*
|
*
|
||||||
* @param {Number} [length=1] the length of the normalized vector
|
* @param {Number} [length=1] The length of the normalized vector
|
||||||
* @return {Point} the normalized vector of the vector that is represented
|
* @return {Point} The normalized vector of the vector that is represented
|
||||||
* by this point's coordinates.
|
* by this point's coordinates.
|
||||||
*/
|
*/
|
||||||
normalize: function(length) {
|
normalize: function(length) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue