- Point

- add
- compare
With Line Segment Point - copy
- direction
- direction
Point - distance
Squared - distance
Squared Point - equal
To - equals
- is
Real - normalize
- offset
- project
Onto Line Segment - project
Onto Line Segment Point - rotate
- scale
- set
- set
Rect Spot - set
Spot - set
To - snap
To Grid - snap
To Grid Point - subtract
- compare
With Line Segment - direction
- distance
Line Segment Squared - distance
Squared - intersecting
Line Segments - parse
- stringify

The default constructor produces the Point(0,0). This constructor may take either zero arguments or two arguments.

#### Parameters

##### Optional x: number

The x value.

##### Optional y: number

The y value.

#### Returns Point

Gets or sets the x value of the Point.

Gets or sets the y value of the Point.

Create a copy of this Point, with the same values.

#### Returns Point

Compute the angle from this Point to a given (px,py) point. However, if the point is the same as this Point, the direction is zero.

#### Parameters

##### px: number

##### py: number

#### Returns number

the angle, in degrees, of the line from this Point to the given point.

Compute the angle from this Point to a given Point. However, if the given Point is the same as this Point, the direction is zero.

#### Parameters

##### p: Point

the other Point to which to measure the relative angle.

#### Returns number

the angle, in degrees, of the line from this Point to the given point.

Returns the square of the distance from this point to a given point (px, py).

#### Parameters

##### px: number

##### py: number

#### Returns number

the square of the euclidean distance.

Returns the square of the distance from this Point to a given Point.

#### Parameters

##### p: Point

the other Point to measure to.

#### Returns number

the square of the euclidean distance.

Indicates whether the given point (x, y) is equal to this Point.

#### Parameters

##### x: number

##### y: number

#### Returns boolean

True if the two Points have identical X and Y values, false otherwise.

Indicates whether the given Point is equal to this Point.

#### Parameters

##### p: Point

The Point to compare to the current Point.

#### Returns boolean

True if the two Points have identical X and Y values, false otherwise.

True if this Point has X and Y values that are real numbers and not infinity.

#### Returns boolean

Modify this Point so that its X and Y values have been normalized to a unit length. However, if this Point is the origin (zero, zero), its length remains zero.

#### Returns Point

this.

Modify this point by shifting its values with the given DX and DY offsets.

#### Parameters

##### dx: number

##### dy: number

#### Returns Point

this.

Modify this point to be the closest point to this point that is on a finite line segment.

#### Parameters

##### px: number

one end of the finite line segment

##### py: number

one end of the finite line segment

##### qx: number

the other end of the finite line segment

##### qy: number

the other end of the finite line segment

#### Returns Point

this modified Point

Modify this Point so that has been rotated about the origin by the given angle.

#### Parameters

##### angle: number

an angle in degrees.

#### Returns Point

this.

Modify this Point so that its X and Y values have been scaled by given factors along the X and Y axes.

#### Parameters

##### sx: number

##### sy: number

#### Returns Point

this.

Modify this Point so that its X and Y values correspond to a particular Spot in a given Rect.

The result is meaningless if Spot.isNoSpot is true for the given Spot.

#### Parameters

##### r: Rect

the Rect for which we are finding the point.

##### spot: Spot

the Spot; Spot.isSpot must be true for this Spot.

#### Returns Point

this.

Modify this Point so that its X and Y values correspond to a particular Spot in a given rectangle.

The result is meaningless if Spot.isNoSpot is true for the given Spot.

#### Parameters

##### x: number

The X coordinate of the Rect for which we are finding the point.

##### y: number

The Y coordinate of the Rect for which we are finding the point.

##### w: number

The Width of the Rect for which we are finding the point.

##### h: number

The Height of the Rect for which we are finding the point.

##### spot: Spot

the Spot; Spot.isSpot must be true for this Spot.

#### Returns Point

this the point of the spot in the rectangle.

Modify this Point with new X and Y values.

#### Parameters

##### x: number

##### y: number

#### Returns Point

this.

Modify this point to be at the nearest point on an infinite grid, given the grid's origin and size of each grid cell.

#### Parameters

##### originx: number

the top-left point of one of the grid cells

##### originy: number

the top-left point of one of the grid cells

##### cellwidth: number

the size of each grid cell -- must be a real number larger than zero

##### cellheight: number

the size of each grid cell -- must be a real number larger than zero

#### Returns Point

this modified Point

#### Parameters

##### a1x: number

##### a1y: number

##### a2x: number

##### a2y: number

##### px: number

##### py: number

#### Returns number

<0 if on the left side, or >0 if on the right side, or zero if exactly on the finite line segment

This static function returns the angle in degrees of the line from point P to point Q.

#### Parameters

##### px: number

##### py: number

##### qx: number

##### qy: number

#### Returns number

This static function returns the square of the distance from the point P to the finite line segment from point A to point B.

#### Parameters

##### px: number

##### py: number

##### ax: number

##### ay: number

##### bx: number

##### by: number

#### Returns number

the euclidean distance.

This static function returns the square of the distance from the point P to the point Q.

#### Parameters

##### px: number

##### py: number

##### qx: number

##### qy: number

#### Returns number

#### Parameters

##### a1x: number

##### a1y: number

##### a2x: number

##### a2y: number

##### b1x: number

##### b1y: number

##### b2x: number

##### b2y: number

#### Returns boolean

True if the two given finite line segments intersect with each other, false otherwise.

This static function can be used to read in a Point from a string that was produced by Point.stringify.

`go.Point.parse("1 2")`

produces the Point`new go.Point(1, 2)`

.#### Parameters

##### str: string

#### Returns Point

This static function can be used to write out a Point as a string that can be read by Point.parse.

`go.Point.stringify(new go.Point(1, 2))`

produces the string "1 2".#### Parameters

##### val: Point

#### Returns string

Copyright © 1998-2022 by Northwoods Software Corporation.

A Point represents an x- and y-coordinate pair in two-dimensional space.

Use the static functions Point.parse and Point.stringify to convert to and from a standard string representation that is independent of the current locale.

When an instance of this class is the value of a property of a GraphObject class or Diagram or CommandHandler or a Tool class, you should treat the object as if it were frozen or read-only -- you cannot modify its properties. This allows the property to return a value without allocating a new instance. If you need to do your own calculations with the value, call copy to make a new instance with the same values that you can modify.

Many methods modify the object's properties and then return a reference to "this" object. The only instance method to allocate a new object is the copy method. The static Point.parse method also allocates a new object.

The "Debug" implementation of this class is significantly slower than the "Release" implementation, mostly due to additional error checking.

You cannot inherit from this class.