Point in a two dimentional coordinate system.
Several methods will return an adjusted value or perform adjustments in
their operation when two points are close enough as to be considered
equal. When the the difference of each coordinate of two points
is under the equalityThreshold
the
points are considered equal. The equals
method performs this check.
instance.Point
Instances of Rac
contain a convenience
rac.Point
function to create Point
objects with
fewer parameters. This function also contains ready-made convenience
objects, like rac.Point.origin
, listed under
instance.Point
.
Example
let rac = new Rac()
// new instance with constructor
let point = new Rac.Point(rac, 55, 77)
// or convenience function
let otherPoint = rac.Point(55, 77)
- See also:
Constructor
new Point(rac, x, y)
Creates a new Point
instance.
Parameters:
Name | Type | Description |
---|---|---|
rac |
Rac
|
Instance to use for drawing and creating other objects |
x |
Number
|
The x coordinate |
y |
Number
|
The y coordinate |
Members
rac :Rac
Instance of Rac
used for drawing and passed along to any created
object.
Methods
add(x, y) → {Rac.Point}
Returns a new Point
by adding the x
and y
components to this
.
Parameters:
Name | Type | Description |
---|---|---|
x |
Number
|
The x coodinate to add |
y |
Number
|
The y coodinate to add |
addPoint(point) → {Rac.Point}
Returns a new Point
by adding the components of point
to this
.
Parameters:
Name | Type | Description |
---|---|---|
point |
Rac.Point
|
A |
addX(x) → {Rac.Point}
Returns a new Point
with x
added to this.x
.
Parameters:
Name | Type | Description |
---|---|---|
x |
Number
|
The x coordinate to add |
addY(y) → {Rac.Point}
Returns a new Point
with y
added to this.y
.
Parameters:
Name | Type | Description |
---|---|---|
y |
Number
|
The y coordinate to add |
angleToPoint(point, defaultAngleopt) → {Rac.Angle}
Returns the angle from this
to point
.
When this
and point
are considered equal,
returns the angle produced with defaultAngle
.
- See also:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
point |
Rac.Point
|
A |
||
defaultAngle |
Rac.Angle
|
Number
|
<optional> |
rac.Angle.zero
|
An |
arc(radius, startopt, endopt, clockwiseopt) → {Rac.Arc}
Returns a new Arc
with center at this
and the given arc properties.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
radius |
Number
|
The radius of the new |
||
start |
Rac.Angle
|
Number
|
<optional> |
rac.Angle.zero
|
The start |
end |
Rac.Angle
|
Number
|
<optional> |
null
|
The end |
clockwise |
Boolean
|
<optional> |
true
|
The orientation of the new |
distanceToPoint(point) → {Number}
Returns the distance from this
to point
.
When this
and point
are considered equal,
returns the angle produced with defaultAngle
.
- See also:
Parameters:
Name | Type | Description |
---|---|---|
point |
Rac.Point
|
A |
equals(otherPoint) → {Boolean}
Returns true
when the difference with otherPoint
for each
coordinate is under equalityThreshold
;
otherwise returns false
.
When otherPoint
is any class other that Rac.Point
, returns false
.
Values are compared using rac.equals
.
- See also:
Parameters:
Name | Type | Description |
---|---|---|
otherPoint |
Rac.Point
|
A |
negative() → {Rac.Point}
Returns a new Point
with the negative coordinate values of this
.
pointAtBisector(point) → {Rac.Point}
Returns a new Point
located in the middle between this
and point
.
Parameters:
Name | Type | Description |
---|---|---|
point |
Rac.Point
|
A |
pointToAngle(angle, distance) → {Rac.Point}
Returns a new Point
at a distance
from this
in the direction of
angle
.
Parameters:
Name | Type | Description |
---|---|---|
angle |
Rac.Angle
|
Number
|
An |
distance |
Number
|
The distance to the new |
ray(angle) → {Rac.Ray}
Returns a new Ray
from this
towards angle
.
Parameters:
Name | Type | Description |
---|---|---|
angle |
Rac.Angle
|
Number
|
The |
rayTangentToArc(arc, clockwiseopt) → (nullable) {Rac.Ray}
Returns a new Ray
that starts at this
and is tangent to arc
, when
no tangent is possible returns null
.
The new Ray
will be in the clockwise
side of the ray formed
from this
towards arc.center
. arc
is considered a complete
circle.
When this
is inside arc
no tangent segment is possible and null
is returned.
A special case is considered when arc.radius
is considered to be 0
and this
is equal to arc.center
. In this case the angle between
this
and arc.center
is assumed to be the inverse of arc.start
,
thus the new Ray
will have an angle perpendicular to
arc.start.inverse()
, in the clockwise
orientation.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
arc |
Rac.Arc
|
An |
||
clockwise |
Boolean
|
<optional> |
true
|
the orientation of the new |
rayToPoint(point, defaultAngleopt) → {Rac.Ray}
Returns a new Ray
from this
towards point
.
When this
and point
are considered equal,
the new Ray
will use the angle produced with defaultAngle
.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
point |
Rac.Point
|
A |
||
defaultAngle |
Rac.Angle
|
Number
|
<optional> |
rac.Angle.zero
|
An |
rayToProjectionInRay(ray) → {Rac.Ray}
Returns a new Ray
from this
to the projection of this
in ray
.
When the projected point and this
are
considered equal the produced ray will have
an angle perpendicular to ray
in the clockwise direction.
Parameters:
Name | Type | Description |
---|---|---|
ray |
Rac.Ray
|
A |
segmentTangentToArc(arc, clockwiseopt) → (nullable) {Rac.Segment}
Returns a new Segment
that starts at this
and is tangent to arc
,
when no tangent is possible returns null
.
The new Segment
will be in the clockwise
side of the ray formed
from this
towards arc.center
, and its end point will be at the
contact point with arc
which is considered as a complete circle.
When this
is inside arc
no tangent segment is possible and null
is returned.
A special case is considered when arc.radius
is considered to be 0
and this
is equal to arc.center
. In this case the angle between
this
and arc.center
is assumed to be the inverse of arc.start
,
thus the new Segment
will have an angle perpendicular to
arc.start.inverse()
, in the clockwise
orientation.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
arc |
Rac.Arc
|
An |
||
clockwise |
Boolean
|
<optional> |
true
|
the orientation of the new |
segmentToAngle(angle, length) → {Rac.Segment}
Returns a new Segment
from this
towards angle
with the given
length
.
Parameters:
Name | Type | Description |
---|---|---|
angle |
Rac.Angle
|
Number
|
An |
length |
Number
|
The length of the new |
segmentToPoint(point, defaultAngleopt) → {Rac.Segment}
Returns a new Segment
from this
to point
.
When this
and point
are considered equal,
the new Segment
will use the angle produced with defaultAngle
.
- See also:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
point |
Rac.Point
|
A |
||
defaultAngle |
Rac.Angle
|
Number
|
<optional> |
rac.Angle.zero
|
An |
segmentToProjectionInRay(ray) → {Rac.Segment}
Returns a new Segment
from this
to the projection of this
in
ray
.
When the projected point is equal to this
, the new Segment
will
have an angle perpendicular to ray
in the clockwise direction.
Parameters:
Name | Type | Description |
---|---|---|
ray |
Rac.Ray
|
A |
subtract(x, y) → {Rac.Point}
Returns a new Point
by subtracting the x
and y
components.
Parameters:
Name | Type | Description |
---|---|---|
x |
Number
|
The x coodinate to subtract |
y |
Number
|
The y coodinate to subtract |
subtractPoint(point) → {Rac.Point}
Returns a new Point
by subtracting the components of point
.
Parameters:
Name | Type | Description |
---|---|---|
point |
Rac.Point
|
A |
text(string, formatopt) → {Rac.Text}
Returns a new Text
located at this
with the given string
and
format
.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
string |
String
|
The string of the new |
||
format |
Rac.Text.Format
|
<optional> |
rac.Text.Format.topLeft
|
The format of the new |
toString(digitsopt) → {String}
Returns a string representation intended for human consumption.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
digits |
Number
|
<optional> |
null
|
The number of digits to print after the decimal point, when ommited all digits are printed |
Example
// returns: 'Point(55,77)'
rac.Point(55, 77).toString()
vertex()
Calls p5.vertex
to represent this Point
.
Added to Rac.Point.prototype
when Rac.P5Drawer
is setup as
rac.drawer
.
withX(newX) → {Rac.Point}
Returns a new Point
with x
set to newX
.
Parameters:
Name | Type | Description |
---|---|---|
newX |
Number
|
The x coordinate for the new |
withY(newY) → {Rac.Point}
Returns a new Point
with x
set to newX
.
Parameters:
Name | Type | Description |
---|---|---|
newY |
Number
|
The y coordinate for the new |