Point
constructor
g.Point(x [, y])
Return a new Point object with x
and y
coordinates. If x
is a string, it is considered to be in the form "[number] [number]"
or "[number]@[number]"
where the first number is the x coordinate and the second is the y coordinate. Examples:
var p = g.Point(10, 20);
var p = new g.Point(10, 20);
var p = g.Point('10 20');
var p = g.Point('10@20');
var p = g.Point(g.Point(10, 20));
Methods
adhereToRect()
point.adhereToRect(r)
If the point lies outside the rectangle r
, adjust the point so that it becomes the nearest point on the boundary of r
.
angleBetween()
point.angleBetween(p1, p2)
Compute the angle (in degrees) between the line from this point to p1
and the line from this point to p2
.
The ordering of points p1
and p2
is important. The function returns a value between 0 and 180 when the angle (in the direction from p1
to p2
) is clockwise, and a value between 180 and 360 when the angle is counterclockwise. The function returns NaN
if either of the points p1
and p2
is coincident with this point.
bearing()
point.bearing(p)
Return the bearing (cardinal direction) of the line from this point to p
. The return value is one of the following strings: 'NE'
, 'E'
, 'SE'
, 'S'
, 'SW'
, 'W'
, 'NW'
and 'N'
.
The function returns 'N'
if this point is coincident with the point p
.
changeInAngle()
point.changeInAngle(dx, dy, ref)
Return the change in angle (in degrees) that is the result of moving the point from its previous position to its current position.
More specifically, this function computes the angle between the line from the ref
point to the previous position of this point (i.e. current position -dx
, -dy
) and the line from the ref point to the current position of this point.
The function returns a positive value between 0 and 180 when the angle (in the direction from previous position of this point to its current position) is clockwise, and a negative value between 0 and -180 when the angle is counterclockwise. The function returns 0 if the previous and current positions of this point are the same (i.e. both dx
and dy
are 0
).
chooseClosest()
point.chooseClosest(points)
Choose the point closest to this point from among points
. If points
is an empty array, null
is returned.
clone()
point.clone()
Return another point which is a clone of the point.
cross()
point.cross(p1, p2)
Return the cross product of the vector from the point passing through p1
and the vector from the point passing through p2
.
The left-hand rule is used because the coordinate system is left-handed.
difference()
point.difference(dx [, dy])
Return a point that has coordinates computed as a difference between the point and another point with coordinates dx
and dy
.
If only dx
is specified and is a number, dy
is considered to be zero. If only dx
is specified and is an object, it is considered to be another point or an object in the form { x: [number], y: [number] }
distance()
point.distance(p)
Return the distance between the point and another point p
.
dot()
point.dot(p)
Return the dot product of this vector (point) and vector p
.
equals()
point.equals(p)
Return true
if the point equals another point p
. Return false
otherwise.
lerp()
point.lerp(p, t)
Return an interpolation between the point and point p
for a parametert
in the closed interval [0, 1]
magnitude()
point.magnitude()
Return the magnitude of the point vector.
manhattanDistance()
point.manhattanDistance(p)
Return the manhattan distance between the point and another point p
.
move()
point.move(ref, distance)
Move the point on a line that leads to another point ref
by a certain distance
.
normalize()
point.normalize(length)
Normalize the point vector and return the point itself.
In other words, scale the line segment between (0, 0) and the point in order for it to have the given length
. If length is not specified, it is considered to be 1
; in that case, a unit vector is computed.
offset()
point.offset(dx [, dy])
Offset the point (change its x
and y
coordinates) by dx
in x-axis and dy
in y-axis.
If only dx
is specified and is a number, dy
is considered to be zero. If only dx
is specified and is an object, it is considered to be another point or an object in the form { x: [number], y: [number] }
reflection()
point.reflection(p)
Return a point that is a reflection of the point with the center of reflection at point p
.
rotate()
point.rotate(origin, angle)
Rotate the point by angle
around origin
.
round()
point.round([precision])
Round the coordinates of the point to the given precision.
Default precision is 0
.
Modifies this point in-place, and returns it.
scale()
point.scale(sx, sy [, origin])
Scale point by sx
and sy
about the given origin.
If origin is not specified, the point is scaled around 0,0.
serialize()
point.serialize()
Returns the point represented as an SVG point string.
new g.Point('10 10').serialize() = "10,10"
snapToGrid()
point.snapToGrid(gridSize [, gridSizeY])
Snap the point (change its x
and y
coordinates) to a grid of size gridSize
(or gridSize
x gridSizeY
for non-uniform grid).
squaredDistance()
point.squaredDistance(p)
Return the squared distance between the point and another point p
.
Useful for distance comparisons in which real distance is not necessary (saves one Math.sqrt()
operation).
theta()
point.theta(p)
Return the angle (in degrees) between the point, another point p
and the x-axis.
toJSON()
point.toJSON()
Return the point as a simple JSON object. For example: { "x": 0, "y": 0 }
.
toPolar()
point.toPolar([origin])
Convert rectangular to polar coordinates.
If origin
is not specified, it is considered to be 0,0.
toString()
point.toString()
Returns the point as a string.
new g.Point('10 10').toString() = "10@10"
translate()
point.translate(tx [, ty])
Translate the point by tx
on the x-axis and by ty
on the y-axis.
If only tx
is specified and is a number, ty
is considered to be zero. If only tx
is specified and is an object, it is considered to be another point or an object in the form { x: [number], y: [number] }
update()
point.update(x, y)
point.update(p)
Update the point's x
and y
coordinates with new values and return the point itself. Useful for chaining.
Also accepts a single argument in the form of an object { x: [number], y: [number] }
.
vectorAngle()
point.vectorAngle(p)
Compute the angle (in degrees) between the line from (0,0) and this point and the line from (0,0) to p
.
The function returns a value between 0 and 180 when the angle (in the direction from this point to p
) is clockwise, and a value between 180 and 360 when the angle is counterclockwise. The function returns NaN
if called from point (0,0) or if p
is (0,0).
Static methods
fromPolar()
g.Point.fromPolar(distance, angle, origin)
Returns a new Point object from the given polar coordinates.
random()
g.Point.random(x1, x2, y1, y2)
Returns a new point object with random coordinates that fall within the range [x1, x2]
and [y1, y2]
.