vector2d/README.md

2.7 KiB

Vector2D Library for TypeScript

A comprehensive TypeScript library for 2D vector operations, including addition, subtraction, multiplication, division, normalization, and more. Ideal for game development, physics simulations, and graphical applications.

Features

  • Create and manipulate 2D vectors
  • Perform vector arithmetic (addition, subtraction, multiplication, division)
  • Calculate dot and cross products
  • Normalize vectors
  • Calculate magnitude and distance between vectors
  • Rotate vectors
  • Linear interpolation between vectors

Installation

You can install the library using npm:

npm install ts-vector2d

Usage

Here's a quick example of how to use the Vector2D class:

import { Vector2D } from 'vector2d';

const vector1 = new Vector2D(3, 4);
const vector2 = new Vector2D(1, 2);

// Vector addition
const result = vector1.add(vector2);
console.log(`Result of addition: (${result.getX()}, ${result.getY()})`);

// Vector normalization
const normalized = vector1.normalize();
console.log(`Normalized vector: (${normalized.getX()}, ${normalized.getY()})`);

API Reference

Vector2D

Constructor

constructor(x: number, y: number)
x - The x-coordinate.
y - The y-coordinate.

Methods

  • getX(): number - Gets the x-coordinate.
  • getY(): number - Gets the y-coordinate.
  • setX(x: number): void - Sets the x-coordinate.
  • setY(y: number): void - Sets the y-coordinate.
  • set(x: number, y: number): void - Sets both the x and y coordinates.
  • add(vector: Vector2D): Vector2D - Adds another vector to this vector.
  • subtract(vector: Vector2D): Vector2D - Subtracts another vector from this vector.
  • multiply(scalar: number): Vector2D - Multiplies this vector by a scalar.
  • divide(scalar: number): Vector2D - Divides this vector by a scalar.
  • dot(vector: Vector2D): number - Calculates the dot product of this vector and another vector.
  • cross(vector: Vector2D): number - Calculates the cross product of this vector and another vector.
  • magnitude(): number - Calculates the magnitude (length) of this vector.
  • normalize(): Vector2D - Normalizes this vector (makes it have a magnitude of 1).
  • clone(): Vector2D - Creates a copy of this vector.
  • equals(vector: Vector2D): boolean - Checks if this vector is equal to another vector.
  • toString(): string - Returns a string representation of this vector.
  • distance(vector: Vector2D): number - Calculates the distance to another vector.
  • angle(): number - Calculates the angle of this vector relative to the positive X-axis.
  • rotate(angle: number): Vector2D - Rotates this vector by a given angle.
  • lerp(vector: Vector2D, t: number): Vector2D - Performs linear interpolation between this vector and another vector.