API Reference > geometry-core > CartesianGeometry > Point2d Point2d Class 2D point with x,y as properties Extends XY Implements BeJSONFunctions Methods Name Description constructor(x: number = 0, y: number = 0): Point2d Constructor for Point2d addForwardLeft(tangentFraction: number, leftFraction: number, vector: Vector2d): Point2d Starting at this point, move along vector by tangentFraction of the vector length, and to the left by leftFraction of clone(result?: Point2d): Point2d return a new Point2d with x,y coordinates from this. crossProductToPoints(target1: Readonly<WritableXAndY>, target2: Readonly<WritableXAndY>): number Returns the (scalar) cross product of two points/vectors, computed from origin to target1 and target2 dotVectorsToTargets(targetA: Readonly<WritableXAndY>, targetB: Readonly<WritableXAndY>): number Return the dot product of vector from this to targetA and vector from this to targetB forwardLeftInterpolate(tangentFraction: number, leftFraction: number, point: Readonly<WritableXAndY>): Point2d Interpolate at tangentFraction between this instance and point. fractionOfProjectionToLine(startPoint: Point2d, endPoint: Point2d, defaultFraction?: number): number Return the fractional coordinate of the projection of this instance x,y onto the line from startPoint to endPoint. interpolate(fraction: number, other: Readonly<WritableXAndY>, result?: Point2d): Point2d Return a point interpolated between this point and the right param. interpolateXY(fractionX: number, fractionY: number, other: Readonly<WritableXAndY>, result?: Point2d): Point2d Return a point with independent x,y fractional interpolation. minus(vector: Readonly<WritableXAndY>, result?: Point2d): Point2d Return this point minus vector plus(vector: Readonly<WritableXAndY>, result?: Point2d): Point2d Return point plus vector plus2Scaled(vectorA: Readonly<WritableXAndY>, scalarA: number, vectorB: Readonly<WritableXAndY>, scalarB: number, result?: Point2d): Point2d Return point + vectorA * scalarA + vectorB * scalarB plus3Scaled(vectorA: Readonly<WritableXAndY>, scalarA: number, vectorB: Readonly<WritableXAndY>, scalarB: number, vectorC: Readonly<WritableXAndY>, scalarC: number, result?: Point2d): Point2d Return point + vectorA * scalarA + vectorB * scalarB + vectorC * scalarC plusScaled(vector: Readonly<WritableXAndY>, scaleFactor: number, result?: Point2d): Point2d Return point + vector * scalar plusXY(dx: number = 0, dy: number = 0, result?: Point2d): Point2d Return point plus vector create(x: number = 0, y: number = 0, result?: Point2d): Point2d Static Return a point (newly created unless result provided) with given x,y coordinates createFrom(xy: undefined | Readonly<WritableXAndY>, result?: Point2d): Point2d Static Create (or optionally reuse) a Point2d from another object with fields x and y createZero(result?: Point2d): Point2d Static Create a Point2d with both coordinates zero. fromJSON(json?: XYProps): Point2d Static Convert JSON [1,2] or {x:1, y:2} to a Point2d instance Inherited methods Name Inherited from Description distance(other: Readonly<WritableXAndY>): number XY Return the distance from this point to other distanceSquared(other: Readonly<WritableXAndY>): number XY Return squared distance from this point to other freeze(): Readonly<Point2d> XY Freeze this instance so it is read-only isAlmostEqual(other: Readonly<WritableXAndY>, tol?: number): boolean XY Returns true if this and other have equal x,y parts within Geometry.smallMetricDistance. isAlmostEqualMetric(other: Readonly<WritableXAndY>): boolean XY returns true if x,y match other within metric tolerance isAlmostEqualXY(x: number, y: number, tol?: number): boolean XY Returns true if this and other have equal x,y parts within Geometry.smallMetricDistance. isExactEqual(other: Readonly<WritableXAndY>): boolean XY returns true if the x,y components are exactly equal. magnitude(): number XY Return the magnitude of the vector magnitudeSquared(): number XY Return the squared magnitude of the vector. maxAbs(): number XY Return the largest absolute value of any component maxDiff(other: Readonly<WritableXAndY>): number XY Return the largest absolute distance between corresponding components set(x: number = 0, y: number = 0): void XY Set both x and y. setFrom(other?: Readonly<WritableXAndY>): void XY Set both x and y from other. setFromJSON(json?: XYProps): void XY Set x and y from a JSON source such as [1,2] or {x:1, y:2} setZero(): void XY Set both x and y to zero toJSON(): XYProps XY return a json array [x,y] toJSONXY(): XYProps XY return a json object {x: 1, y:2} unitVectorTo(target: Readonly<WritableXAndY>, result?: Vector2d): undefined | Vector2d XY Return a unit vector from this point to other vectorTo(other: Readonly<WritableXAndY>, result?: Vector2d): Vector2d XY Return a (full length) vector from this point to other crossProductToPoints(origin: Readonly<WritableXAndY>, targetA: Readonly<WritableXAndY>, targetB: Readonly<WritableXAndY>): number Static XY cross product of vectors from origin to targets Inherited properties Name Type Inherited from Description isAlmostZero Accessor ReadOnly boolean XY returns true if the x,y components are both small by metric metric tolerance x number XY x component y number XY y component Defined in geometry3d/Point2dVector2d.ts Line 122 Last Updated: 11 June, 2024