Spaces:
Sleeping
Sleeping
| /** | |
| * A standalone point geometry with useful accessor, comparison, and | |
| * modification methods. | |
| * | |
| * @class | |
| * @param {number} x the x-coordinate. This could be longitude or screen pixels, or any other sort of unit. | |
| * @param {number} y the y-coordinate. This could be latitude or screen pixels, or any other sort of unit. | |
| * | |
| * @example | |
| * const point = new Point(-77, 38); | |
| */ | |
| declare function Point(x: number, y: number): void; | |
| declare class Point { | |
| /** | |
| * A standalone point geometry with useful accessor, comparison, and | |
| * modification methods. | |
| * | |
| * @class | |
| * @param {number} x the x-coordinate. This could be longitude or screen pixels, or any other sort of unit. | |
| * @param {number} y the y-coordinate. This could be latitude or screen pixels, or any other sort of unit. | |
| * | |
| * @example | |
| * const point = new Point(-77, 38); | |
| */ | |
| constructor(x: number, y: number); | |
| x: number; | |
| y: number; | |
| /** | |
| * Clone this point, returning a new point that can be modified | |
| * without affecting the old one. | |
| * @return {Point} the clone | |
| */ | |
| clone(): Point; | |
| /** | |
| * Add this point's x & y coordinates to another point, | |
| * yielding a new point. | |
| * @param {Point} p the other point | |
| * @return {Point} output point | |
| */ | |
| add(p: Point): Point; | |
| /** | |
| * Subtract this point's x & y coordinates to from point, | |
| * yielding a new point. | |
| * @param {Point} p the other point | |
| * @return {Point} output point | |
| */ | |
| sub(p: Point): Point; | |
| /** | |
| * Multiply this point's x & y coordinates by point, | |
| * yielding a new point. | |
| * @param {Point} p the other point | |
| * @return {Point} output point | |
| */ | |
| multByPoint(p: Point): Point; | |
| /** | |
| * Divide this point's x & y coordinates by point, | |
| * yielding a new point. | |
| * @param {Point} p the other point | |
| * @return {Point} output point | |
| */ | |
| divByPoint(p: Point): Point; | |
| /** | |
| * Multiply this point's x & y coordinates by a factor, | |
| * yielding a new point. | |
| * @param {number} k factor | |
| * @return {Point} output point | |
| */ | |
| mult(k: number): Point; | |
| /** | |
| * Divide this point's x & y coordinates by a factor, | |
| * yielding a new point. | |
| * @param {number} k factor | |
| * @return {Point} output point | |
| */ | |
| div(k: number): Point; | |
| /** | |
| * Rotate this point around the 0, 0 origin by an angle a, | |
| * given in radians | |
| * @param {number} a angle to rotate around, in radians | |
| * @return {Point} output point | |
| */ | |
| rotate(a: number): Point; | |
| /** | |
| * Rotate this point around p point by an angle a, | |
| * given in radians | |
| * @param {number} a angle to rotate around, in radians | |
| * @param {Point} p Point to rotate around | |
| * @return {Point} output point | |
| */ | |
| rotateAround(a: number, p: Point): Point; | |
| /** | |
| * Multiply this point by a 4x1 transformation matrix | |
| * @param {[number, number, number, number]} m transformation matrix | |
| * @return {Point} output point | |
| */ | |
| matMult(m: [number, number, number, number]): Point; | |
| /** | |
| * Calculate this point but as a unit vector from 0, 0, meaning | |
| * that the distance from the resulting point to the 0, 0 | |
| * coordinate will be equal to 1 and the angle from the resulting | |
| * point to the 0, 0 coordinate will be the same as before. | |
| * @return {Point} unit vector point | |
| */ | |
| unit(): Point; | |
| /** | |
| * Compute a perpendicular point, where the new y coordinate | |
| * is the old x coordinate and the new x coordinate is the old y | |
| * coordinate multiplied by -1 | |
| * @return {Point} perpendicular point | |
| */ | |
| perp(): Point; | |
| /** | |
| * Return a version of this point with the x & y coordinates | |
| * rounded to integers. | |
| * @return {Point} rounded point | |
| */ | |
| round(): Point; | |
| /** | |
| * Return the magnitude of this point: this is the Euclidean | |
| * distance from the 0, 0 coordinate to this point's x and y | |
| * coordinates. | |
| * @return {number} magnitude | |
| */ | |
| mag(): number; | |
| /** | |
| * Judge whether this point is equal to another point, returning | |
| * true or false. | |
| * @param {Point} other the other point | |
| * @return {boolean} whether the points are equal | |
| */ | |
| equals(other: Point): boolean; | |
| /** | |
| * Calculate the distance from this point to another point | |
| * @param {Point} p the other point | |
| * @return {number} distance | |
| */ | |
| dist(p: Point): number; | |
| /** | |
| * Calculate the distance from this point to another point, | |
| * without the square root step. Useful if you're comparing | |
| * relative distances. | |
| * @param {Point} p the other point | |
| * @return {number} distance | |
| */ | |
| distSqr(p: Point): number; | |
| /** | |
| * Get the angle from the 0, 0 coordinate to this point, in radians | |
| * coordinates. | |
| * @return {number} angle | |
| */ | |
| angle(): number; | |
| /** | |
| * Get the angle from this point to another point, in radians | |
| * @param {Point} b the other point | |
| * @return {number} angle | |
| */ | |
| angleTo(b: Point): number; | |
| /** | |
| * Get the angle between this point and another point, in radians | |
| * @param {Point} b the other point | |
| * @return {number} angle | |
| */ | |
| angleWith(b: Point): number; | |
| /** | |
| * Find the angle of the two vectors, solving the formula for | |
| * the cross product a x b = |a||b|sin(θ) for θ. | |
| * @param {number} x the x-coordinate | |
| * @param {number} y the y-coordinate | |
| * @return {number} the angle in radians | |
| */ | |
| angleWithSep(x: number, y: number): number; | |
| /** @param {[number, number, number, number]} m */ | |
| _matMult(m: [number, number, number, number]): this; | |
| /** @param {Point} p */ | |
| _add(p: Point): this; | |
| /** @param {Point} p */ | |
| _sub(p: Point): this; | |
| /** @param {number} k */ | |
| _mult(k: number): this; | |
| /** @param {number} k */ | |
| _div(k: number): this; | |
| /** @param {Point} p */ | |
| _multByPoint(p: Point): this; | |
| /** @param {Point} p */ | |
| _divByPoint(p: Point): this; | |
| _unit(): this; | |
| _perp(): this; | |
| /** @param {number} angle */ | |
| _rotate(angle: number): this; | |
| /** | |
| * @param {number} angle | |
| * @param {Point} p | |
| */ | |
| _rotateAround(angle: number, p: Point): this; | |
| _round(): this; | |
| } | |
| declare namespace Point { | |
| /** | |
| * Construct a point from an array if necessary, otherwise if the input | |
| * is already a Point, return it unchanged. | |
| * @param {Point | [number, number] | {x: number, y: number}} p input value | |
| * @return {Point} constructed point. | |
| * @example | |
| * // this | |
| * var point = Point.convert([0, 1]); | |
| * // is equivalent to | |
| * var point = new Point(0, 1); | |
| */ | |
| function convert(p: Point | [number, number] | { | |
| x: number; | |
| y: number; | |
| }): Point; | |
| } | |
| export default Point; | |