# Class: Point

## Core.Math. Point

A utility class that represents a point with an x and y coordinate.

#### new Point(x, y)

  Creates a new Point with an x and y coordinate.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The x-coordinate
  `y` | number | The y-coordinate

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The x-coordinate
  `y` | number | The y-coordinate

### Members

#### <static> Origin

  Gets a point at (0, 0).

### Methods

#### add(vec)

  Adds two vectors together.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | A delta vector

  ##### Returns:

  The combined vector representing a new direction
  Type
    Core.Math.Point

#### angle(vec [, inRadians])

  Gets the angle between this point and another relative to the origin.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `vec` | Core.Math.Point |  |  | The other point
  `inRadians` | boolean | <optional> | false | Whether the result should be in radians. Default: false

  ##### Returns:

  The angle between these two points. Returns radians if inRadians is true
  Type
    number

#### clone()

  Clones this point.

  ##### Returns:

  Returns a new instance of the same point.

#### cross(vec)

  Gets the cross product of this vector and another. This operation is non-commutative.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | The other vector

  ##### Returns:

  A cross product object with X, Y, Z properties
  Type
    any

#### distance(vec)

  Gets the distance between this point and another.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | The other point

  ##### Returns:

  The distance between these two points
  Type
    number

#### dot(vec)

  Gets the dot product of this vector and another. This operation is commutative.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | The other vector

  ##### Returns:

  The dot product
  Type
    number

#### equals(vec)

  Compares this point to another. Points are considered the same if they are within 0.00001 units of each other.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | The other point

  ##### Returns:

  Returns true if points are 0.00001 units of each other. Otherwise false.

#### equalTo(vec)

  Compares this point to another. Evaluates the same way as equals.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` |  | The other point

  ##### Returns:

  Returns true if points are 0.00001 units of each other. Otherwise false.

#### getX()

  Returns the X value of this point.

  ##### Returns:

  The X value
  Type
    number

#### getY()

  Returns the Y value of this point.

  ##### Returns:

  The Y value
  Type
    number

#### isParallelTo(vec)

  Checks whether this vector is parallel to another vector.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | The other vector

  ##### Returns:

  Returns true if both vectors are parallel (same slope). Otherwise false.

#### normalize()

  Normalizes the vector to get a unit vector of length 1.

  ##### Returns:

  The unit vector
  Type
    Core.Math.Point

#### perpendicular()

  Gets a perpendicular vector from this one.

  ##### Returns:

  The perpendicular vector
  Type
    Core.Math.Point

#### reverse()

  . Reverses the direction of this vector

  ##### Returns:

  The reverse vector
  Type
    Core.Math.Point

#### rotate(angle [, inRadians] [, withRespectTo])

  Rotates this point around another point clockwise. By default, this will rotate around the origin.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `angle` | number |  |  | The angle to rotate by
  `inRadians` | boolean | <optional> | false | Whether the amount is in radians. Default: false
  `withRespectTo` | Core.Math.Point | <optional> |  | The point to rotate around. Default: (0, 0)

#### rotate(s)

  Scales the point by a scaling factor.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `s` |  | The amount to scale by

#### subtract(vec)

  Subtracts two vectors from each other.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `vec` | Core.Math.Point | A delta vector

  ##### Returns:

  The resulting vector representing a new direction
  Type
    Core.Math.Point

#### toJSON()

  Serialize a Point object to a JSON object, which can be saved for further use. Calling 'JSON.stringify()' on a Point object will call this function automatically.

  ##### Returns:

  The converted Point JSON object.

#### toMatrix( [vecs])

  Gets a matrix that represents this point. You can include additional rows to add to the final matrix.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `vecs` | Array.<Core.Math.Point> | <optional> | Additional rows to add.

  ##### Returns:

  The matrix that represents this point.
  Type
    Core.Math.Matrix

#### transform(transform)

  Applies a transformation matrix to this point.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `transform` | Core.Math.Matrix | The transformation matrix.

#### translate(x, y)

  Translates this point by the specified delta values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | the unit in the x-axis to translate by
  `y` | number | the unit in the y-axis to translate by

#### Search results