pixi.js
    Preparing search index...

    Class Point

    The Point object represents a location in a two-dimensional coordinate system, where x represents the position on the horizontal axis and y represents the position on the vertical axis.

    Many Pixi functions accept the PointData type as an alternative to Point, which only requires x and y properties.

    // Basic point creation
    const point = new Point(100, 200);

    // Using with transformations
    const matrix = new Matrix();
    matrix.translate(50, 50).apply(point);

    // Point arithmetic
    const start = new Point(0, 0);
    const end = new Point(100, 100);
    const middle = new Point(
    (start.x + end.x) / 2,
    (start.y + end.y) / 2
    );

    Hierarchy

    • Point
      • Point

    Implements

    Index

    Constructors

    • Creates a new Point

      Parameters

      • Optionalx: number = 0

        position of the point on the x axis

      • Optionaly: number = 0

        position of the point on the y axis

      Returns Point

    Properties

    x: number = 0

    Position of the point on the x axis

    // Set x position
    const point = new Point();
    point.x = 100;

    // Use in calculations
    const width = rightPoint.x - leftPoint.x;
    y: number = 0

    Position of the point on the y axis

    // Set y position
    const point = new Point();
    point.y = 200;

    // Use in calculations
    const height = bottomPoint.y - topPoint.y;

    Accessors

    • get shared(): Point

      A static Point object with x and y values of 0.

      This shared instance is reset to zero values when accessed.

      Important

      This point is shared and temporary. Do not store references to it.

      Returns Point

      A fresh zeroed point for temporary use

      // Use for temporary calculations
      const tempPoint = Point.shared;
      tempPoint.set(100, 200);
      matrix.apply(tempPoint);

      // Will be reset to (0,0) on next access
      const fresh = Point.shared; // x=0, y=0

    Methods

    • Adds other to this point and outputs into outPoint or a new Point.

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • other: PointData

        The point to add to this

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The outPoint or a new Point with addition result

      // Basic point addition
      const point = new Point(10, 20);
      const other = new Point(5, 10);
      const result = point.add(other);
      console.log(result); // Point(15, 30)

      // Using output point for efficiency
      const output = new Point();
      point.add(other, output);
      console.log(output); // Point(15, 30)

      // Chain multiple additions
      const final = point.add(other).add(new Point(2, 3));
    • Creates a clone of this point, which is a new instance with the same x and y values.

      Returns Point

      A clone of this point

      // Basic point cloning
      const original = new Point(100, 200);
      const copy = original.clone();

      // Clone and modify
      const modified = original.clone();
      modified.set(300, 400);

      // Verify independence
      console.log(original); // Point(100, 200)
      console.log(modified); // Point(300, 400)
      • Creates new Point instance
      • Deep copies x and y values
      • Independent from original
      • Useful for preserving values
    • Copies x and y from the given point into this point.

      Parameters

      Returns this

      The point instance itself

      // Basic copying
      const source = new Point(100, 200);
      const target = new Point();
      target.copyFrom(source);

      // Copy and chain operations
      const point = new Point()
      .copyFrom(source)
      .set(x + 50, y + 50);

      // Copy from any PointData
      const data = { x: 10, y: 20 };
      point.copyFrom(data);
    • Copies this point's x and y into the given point.

      Type Parameters

      Parameters

      • p: T

        The point to copy to. Can be any type that is or extends PointLike

      Returns T

      The point (p) with values updated

      // Basic copying
      const source = new Point(100, 200);
      const target = new Point();
      source.copyTo(target);
    • Computes the cross product of other with this point. Returns the z-component of the 3D cross product, assuming z=0 for both vectors.

      Important

      Only available with pixi.js/math-extras.

      Parameters

      • other: PointData

        The other point to calculate the cross product with

      Returns number

      The z-component of the cross product

      // Basic cross product
      const v1 = new Point(2, 3);
      const v2 = new Point(4, 5);
      const result = v1.cross(v2); // 2*5 - 3*4 = -2

      // Check if vectors are parallel
      const isParallel = v1.cross(v2) === 0;

      // Get signed area of parallelogram
      const area = Math.abs(v1.cross(v2));
      • Returns z-component only (x,y assumed in 2D plane)
      • Positive result means counter-clockwise angle from this to other
      • Magnitude equals area of parallelogram formed by vectors
    • Computes the dot product of other with this point. The dot product is the sum of the products of the corresponding components of two vectors.

      Important

      Only available with pixi.js/math-extras.

      Parameters

      • other: PointData

        The other point to calculate the dot product with

      Returns number

      The scalar result of the dot product

      // Basic dot product
      const v1 = new Point(2, 3);
      const v2 = new Point(4, 5);
      const result = v1.dot(v2); // 2*4 + 3*5 = 23

      // Check if vectors are perpendicular
      const isOrthogonal = v1.dot(v2) === 0;

      // Get angle between vectors
      const cosTheta = v1.dot(v2) / (v1.magnitude() * v2.magnitude());
    • Checks if another point is equal to this point.

      Compares x and y values using strict equality.

      Parameters

      Returns boolean

      true if both x and y are equal

      // Basic equality check
      const p1 = new Point(100, 200);
      const p2 = new Point(100, 200);
      console.log(p1.equals(p2)); // true

      // Compare with PointData
      const data = { x: 100, y: 200 };
      console.log(p1.equals(data)); // true

      // Check different points
      const p3 = new Point(200, 300);
      console.log(p1.equals(p3)); // false
    • Computes the magnitude (length) of this point as Euclidean distance from origin.

      Defined as the square root of the sum of the squares of each component.

      Important

      Only available with pixi.js/math-extras.

      Returns number

      The magnitude (length) of the vector

      // Basic length calculation
      const vector = new Point(3, 4);
      console.log(vector.magnitude()); // 5

      // Check if unit vector
      const isUnit = Math.abs(vector.magnitude() - 1) < 0.0001;

      // Compare vector lengths
      const longer = v1.magnitude() > v2.magnitude();
    • Computes the squared magnitude of this point. More efficient than magnitude() for length comparisons.

      Defined as the sum of the squares of each component.

      Important

      Only available with pixi.js/math-extras.

      Returns number

      The squared magnitude of the vector

      // Efficient length comparison
      const v1 = new Point(3, 4);
      const v2 = new Point(1, 2);

      // Better than: v1.magnitude() > v2.magnitude()
      const longer = v1.magnitudeSquared() > v2.magnitudeSquared();

      // Check if vector is longer than 5 units
      const isLong = v1.magnitudeSquared() > 25; // 5 * 5
    • Multiplies component-wise other and this points and outputs into outPoint or a new Point.

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • other: PointData

        The point to multiply with this

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The outPoint or a new Point with multiplication result

      // Basic point multiplication
      const point = new Point(10, 20);
      const other = new Point(2, 3);
      const result = point.multiply(other);
      console.log(result); // Point(20, 60)

      // Using output point for efficiency
      const output = new Point();
      point.multiply(other, output);
      console.log(output); // Point(20, 60)

      // Chain multiple operations
      const final = point.multiply(other).add(new Point(5, 5));
    • Multiplies each component of this point with the number scalar and outputs into outPoint or a new Point.

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • scalar: number

        The number to multiply both components with

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The outPoint or a new Point with multiplication result

      // Basic scalar multiplication
      const point = new Point(10, 20);
      const result = point.multiplyScalar(2);
      console.log(result); // Point(20, 40)

      // Using output point for efficiency
      const output = new Point();
      point.multiplyScalar(0.5, output);
      console.log(output); // Point(5, 10)

      // Chain with other operations
      const final = point.multiplyScalar(2).add(new Point(5, 5));
    • Computes a normalized version of this point.

      A normalized vector is a vector of magnitude (length) 1

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The normalized point

      // Basic normalization
      const vector = new Point(3, 4);
      const normalized = vector.normalize();
      console.log(normalized.magnitude()); // 1

      // Using output point
      const out = new Point();
      vector.normalize(out);

      // Chain with other operations
      const scaled = vector.normalize().multiplyScalar(5);
    • Computes vector projection of this on onto. Projects one vector onto another, creating a parallel vector with the length of the projection.

      Imagine a light source, parallel to onto, above this. The light would cast rays perpendicular to onto. this.project(onto) is the shadow cast by this on the line defined by onto .

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • onto: PointData

        Vector to project onto (should be non-zero)

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The projection of this onto onto

      • Results in zero vector if projecting onto zero vector
      • Length depends on angle between vectors
      • Result is parallel to onto vector
      • Useful for physics and collision responses
    • Reflects this vector off of a plane orthogonal to normal.

      Like a light ray bouncing off a mirror surface. this vector is the light and normal is a vector perpendicular to the mirror. this.reflect(normal) is the reflection of this on that mirror.

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • normal: PointData

        The normal vector of the reflecting plane

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The reflection of this off the plane

      // Basic reflection
      const ray = new Point(1, 1);
      const surfaceNormal = new Point(0, 1).normalize();
      const reflection = ray.reflect(surfaceNormal);

      // Using output point
      const out = new Point();
      ray.reflect(surfaceNormal, out);

      // Reflect off angled surface
      const slope = new Point(1, 1).normalize();
      const bounced = ray.reflect(slope);
      • Normal vector should be normalized for accurate results
      • Preserves vector magnitude
      • Useful for physics simulations
      • Common in light/particle effects
    • Sets the point to a new x and y position.

      If y is omitted, both x and y will be set to x.

      Parameters

      • x: number = 0

        Position on the x axis

      • y: number = x

        Position on the y axis, defaults to x

      Returns this

      The point instance itself

      // Basic position setting
      const point = new Point();
      point.set(100, 200);

      // Set both x and y to same value
      point.set(50); // x=50, y=50

      // Chain with other operations
      point
      .set(10, 20)
      .copyTo(otherPoint);
    • Subtracts other from this point and outputs into outPoint or a new Point.

      Important

      Only available with pixi.js/math-extras.

      Type Parameters

      Parameters

      • other: PointData

        The point to subtract from this

      • OptionaloutPoint: T

        Optional Point-like object to store result

      Returns T

      The outPoint or a new Point with subtraction result

      // Basic point subtraction
      const point = new Point(10, 20);
      const other = new Point(5, 10);
      const result = point.subtract(other);
      console.log(result); // Point(5, 10)

      // Using output point for efficiency
      const output = new Point();
      point.subtract(other, output);
      console.log(output); // Point(5, 10)

      // Chain multiple subtractions
      const final = point.subtract(other).subtract(new Point(2, 3));
    • Returns a string representation of an object.

      Returns string